Je ne comprends pas mon erreur !
Résolu/Fermé
A voir également:
- Je ne comprends pas mon erreur !
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur vidéo freebox ✓ - Forum TV & Vidéo
- Instagram une erreur s'est produite ✓ - Forum Instagram
3 réponses
Utilisateur anonyme
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
40711
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 janvier 2025
9 505
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
40711
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 janvier 2025
9 505
>
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
40711
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 janvier 2025
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
40711
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 janvier 2025
9 505
>
Utilisateur anonyme
9 nov. 2019 à 13:42
9 nov. 2019 à 13:42
jordane45
Messages postés
38392
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2025
4 731
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
40711
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 janvier 2025
9 505
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
38392
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2025
4 731
>
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