Je ne comprends pas mon erreur !
Résolu/Fermé
A voir également:
- Je ne comprends pas mon erreur !
- Erreur 0x80070643 - Guide
- Erreur 10016 epson - Forum Imprimante
- Erreur c2002 western union ✓ - Forum Vos droits sur internet
- Erreur g030 - Forum Bbox Bouygues
- Erreur 5000 france tv - Forum Lecteurs et supports vidéo
3 réponses
Whismeril
Messages postés
19027
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 avril 2024
931
9 nov. 2019 à 13:06
9 nov. 2019 à 13:06
« Bonjour », « merci » ou « s'il vous plait » sont essentiels à toute demande car ces mots marquent la politesse élémentaire et montrent le respect que tout demandeur devrait avoir envers les bénévoles qui animent ce forum.
Merci donc de reformuler correctement ta question.
Merci donc de reformuler correctement ta question.
jee pee
Messages postés
39622
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 avril 2024
9 231
9 nov. 2019 à 13:07
9 nov. 2019 à 13:07
Bonjour,
L'insert comporte 11 champs et il n'y a que 10 values, différence img_client.
L'insert comporte 11 champs et il n'y a que 10 values, différence img_client.
jee pee
Messages postés
39622
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 avril 2024
9 231
>
Utilisateur anonyme
9 nov. 2019 à 13:16
9 nov. 2019 à 13:16
il ne faut pas indiquer le champ insert 10 colonnes, 10 ? et 10 values
Utilisateur anonyme
>
jee pee
Messages postés
39622
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 avril 2024
9 nov. 2019 à 13:20
9 nov. 2019 à 13:20
bah dans ma base de donnée il y a 12 valeur mais l'id est e auto-increment donc ce n'est pas grave mais la dernière colonne est img_client et elle a une valeur par défaut donc es ce que je dois mettre une valeur dans l'insert pour la dernière colonne ?
jee pee
Messages postés
39622
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 avril 2024
9 231
>
Utilisateur anonyme
9 nov. 2019 à 13:42
9 nov. 2019 à 13:42
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
9 nov. 2019 à 13:47
9 nov. 2019 à 13:47
Bonjour,
Il y a plusieurs soucis dans ton code.
- Déjà.. la fonction htmlspecialchar ne s'utiliser QUE pour l'affichage et en aucun cas avant d'insérer les données en BDD.
- La fonction rowCount en PDO ne doit pas s'utiliser sur une requête SELECT ( à la place on fera un FETCHALL puis un COUNT sur le résultat )
- Il faut activer l'affichage des erreurs PHP, activer les erreurs PDO et placer chaque requête dans un bloc try/catch
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
- Le SHA1 ne doit plus être utilisé pour gérer les password.
A la place on utilise la fonction php : password_hash
https://www.php.net/manual/fr/function.password-hash.php
Et pour finir... dans une requête préparée .. tu dois avoir autant de points d'interrogations que de variables envoyées dans ton execute.
Il y a plusieurs soucis dans ton code.
- Déjà.. la fonction htmlspecialchar ne s'utiliser QUE pour l'affichage et en aucun cas avant d'insérer les données en BDD.
- La fonction rowCount en PDO ne doit pas s'utiliser sur une requête SELECT ( à la place on fera un FETCHALL puis un COUNT sur le résultat )
- Il faut activer l'affichage des erreurs PHP, activer les erreurs PDO et placer chaque requête dans un bloc try/catch
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
- Le SHA1 ne doit plus être utilisé pour gérer les password.
A la place on utilise la fonction php : password_hash
https://www.php.net/manual/fr/function.password-hash.php
Et pour finir... dans une requête préparée .. tu dois avoir autant de points d'interrogations que de variables envoyées dans ton execute.
jee pee
Messages postés
39622
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 avril 2024
9 231
9 nov. 2019 à 13:51
9 nov. 2019 à 13:51
merci, je voulais écrire qu'il devrait y avoir une gestion des erreurs et code retour notamment derrière l'insert, mais je ne savais pas comment cela se fait.
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
>
Utilisateur anonyme
9 nov. 2019 à 13:56
9 nov. 2019 à 13:56
Le bindparam permet de t'assurer que la variable envoyée correspond au "type" attendu.
Un nombre.. une chaine de texte...
Mais perso.. je ne l'utilise quasiment jamais.
J'utilise, (selon que je m'attaque à une bdd Mysql ou une autre ).. soit les requêtes préparées avec les variables "nommées" .. soit les points d'exclamation;
Exemple de variables nommées :
Un nombre.. une chaine de texte...
Mais perso.. je ne l'utilise quasiment jamais.
J'utilise, (selon que je m'attaque à une bdd Mysql ou une autre ).. soit les requêtes préparées avec les variables "nommées" .. soit les points d'exclamation;
Exemple de variables nommées :
//préparation de la requête et des variables $sql = "INSERT INTO matable (champ1,champ2) VALUES (:valeur1,:autrevaleur)"; $datas = array(':valeur1'=>$valeur1, ':autrevaleur'=>$toto); //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); }
9 nov. 2019 à 13:10