Numéro de paramètre invalide.
Résolu/Fermé
Max747
Messages postés
258
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
11 janvier 2024
-
22 déc. 2021 à 11:00
Max747 Messages postés 258 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 11 janvier 2024 - 22 déc. 2021 à 18:47
Max747 Messages postés 258 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 11 janvier 2024 - 22 déc. 2021 à 18:47
A voir également:
- Numéro de paramètre invalide.
- Numero prive - Guide
- Numéro père noël whatsapp - Accueil - Messagerie instantanée
- Remettre parametre usine pc - Guide
- Word numéro de page 1/2 - Guide
- Parametre windows - Guide
6 réponses
jordane45
Messages postés
38397
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 janvier 2025
4 732
Modifié le 22 déc. 2021 à 11:34
Modifié le 22 déc. 2021 à 11:34
L'erreur concerne la ligne 61 et les précédentes (à partir de la 57 )
Donc.. dans ta requête ... tu n'as aucune variable ... et pourtant ... tu essais d'en mettre dans le execute ...
normal qu'il y ait une erreur !
$requete = $connection->prepare("SELECT id,name,pseudo,date FROM ip_qcm "); $requete->execute(array( ':name' => $voteValue, ':pseudo' => $username, ':date' => $date ));
Donc.. dans ta requête ... tu n'as aucune variable ... et pourtant ... tu essais d'en mettre dans le execute ...
normal qu'il y ait une erreur !
Max747
Messages postés
258
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
11 janvier 2024
22 déc. 2021 à 14:41
22 déc. 2021 à 14:41
Je ne comprends pas.
Car les variables $voteValue, $username et $date contiennent chacune leur valeur.
A savoir aussi que sous PHP 7 ce message d'erreur n'apparait pas.
Quelle variable devrait il y avoir?
En ligne 57 peut être ?
Car les variables $voteValue, $username et $date contiennent chacune leur valeur.
A savoir aussi que sous PHP 7 ce message d'erreur n'apparait pas.
Quelle variable devrait il y avoir?
En ligne 57 peut être ?
jordane45
Messages postés
38397
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 janvier 2025
4 732
22 déc. 2021 à 14:53
22 déc. 2021 à 14:53
oula....
Vois tu ... dans ta requête ... des VARIABLES ?
Mois je n'en vois aucune !
La requête SQL c'est
id, name , pseudo et date sont des CHAMPS de ta table
La table c'est ip_qcm
Rien là dedans n'est une "VARIABLE"
En comparaison, si on prend l'autre requête qui se trouve quelques lignes plus haut.. on a le code php
Là dedans on a la requête SQL qui est :
(name,pseudo,ip,date) sont les CHAMPS de la table ip_qcm dans lesquels tu vas insérer des données...
Données matérialisées par les variables : :facile,:pseudo,:ip,:date (remarque les deux points qui se trouvent devant chaque variable... )
Et donc.. dans le exécute .. tu associe chaque ":variable" à la valeur que tu veux y mettre
(en mettant les deux-points aussi devant le nom de chaque variable c'est préférable ..
Vois tu ... dans ta requête ... des VARIABLES ?
Mois je n'en vois aucune !
La requête SQL c'est
SELECT id,name,pseudo,date FROM ip_qcm
id, name , pseudo et date sont des CHAMPS de ta table
La table c'est ip_qcm
Rien là dedans n'est une "VARIABLE"
En comparaison, si on prend l'autre requête qui se trouve quelques lignes plus haut.. on a le code php
$query = $connection->prepare('INSERT INTO ip_qcm (name,pseudo,ip,date) VALUES(:facile,:pseudo,:ip,:date)'); $query->execute(array( 'facile' => $voteValue, 'pseudo' => $username, 'ip' => $ip, 'date'=>$date));
Là dedans on a la requête SQL qui est :
INSERT INTO ip_qcm (name,pseudo,ip,date) VALUES(:facile,:pseudo,:ip,:date)
(name,pseudo,ip,date) sont les CHAMPS de la table ip_qcm dans lesquels tu vas insérer des données...
Données matérialisées par les variables : :facile,:pseudo,:ip,:date (remarque les deux points qui se trouvent devant chaque variable... )
Et donc.. dans le exécute .. tu associe chaque ":variable" à la valeur que tu veux y mettre
array( ':facile' => $voteValue, ':pseudo' => $username, ':ip' => $ip, ':date'=>$date)
(en mettant les deux-points aussi devant le nom de chaque variable c'est préférable ..
Max747
Messages postés
258
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
11 janvier 2024
22 déc. 2021 à 15:18
22 déc. 2021 à 15:18
Merci pour ton explication.
J'ai mis les : à l'endroit que tu m'indiques concernant la requête INSERT.
Concernant la requête SELECT j'ai bien mis dès le début les : comme indiqué ci dessous:
Néanmoins pourrais tu m'indiquer par exemple comment pourrait être modifié cette ligne :
Pour que le script soit conforme à PHP 8. Et ainsi ne plus faire apparaître le message d'erreur.
Puisque les autres lignes sont correctes.
Merci.
J'ai mis les : à l'endroit que tu m'indiques concernant la requête INSERT.
Concernant la requête SELECT j'ai bien mis dès le début les : comme indiqué ci dessous:
$requete = $connection->prepare("SELECT id,name,pseudo,date FROM ip_qcm "); $requete->execute(array( ':name' => $voteValue, ':pseudo' => $username, ':date' => $date ));
Néanmoins pourrais tu m'indiquer par exemple comment pourrait être modifié cette ligne :
$requete = $connection->prepare("SELECT id,name,pseudo,date FROM ip_qcm ");
Pour que le script soit conforme à PHP 8. Et ainsi ne plus faire apparaître le message d'erreur.
Puisque les autres lignes sont correctes.
Merci.
jordane45
Messages postés
38397
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 janvier 2025
4 732
22 déc. 2021 à 16:43
22 déc. 2021 à 16:43
Mais ce n'est pas cette ligne qui pose problème ... mais le EXECUTE que tu fais ensuite !!!!!
Dans le code :
Tu as ... le prepare de la requete ... ( requête qui ne contient AUCUNE variable ... )
Puis ensuite son execute ... dans lequel tu transmet des variables à associer à la requête ...
mais comme la requête n'attend aucune variable .... ça génère une erreur ....
Vu que tu ne sembles pas comprendre .... je vais te donner la solution ...
mais bon.. faut franchement que tu comprennes... il n'y a rien de plus simple .... et je ne vois pas comment je pourrais te le dire autrement ...
Donc :
Code à corriger par :
Dans le code :
$requete = $connection->prepare("SELECT id,name,pseudo,date FROM ip_qcm "); $requete->execute(array( ':name' => $voteValue, ':pseudo' => $username, ':date' => $date ));
Tu as ... le prepare de la requete ... ( requête qui ne contient AUCUNE variable ... )
Puis ensuite son execute ... dans lequel tu transmet des variables à associer à la requête ...
mais comme la requête n'attend aucune variable .... ça génère une erreur ....
Vu que tu ne sembles pas comprendre .... je vais te donner la solution ...
mais bon.. faut franchement que tu comprennes... il n'y a rien de plus simple .... et je ne vois pas comment je pourrais te le dire autrement ...
Donc :
Code à corriger par :
$requete = $connection->prepare("SELECT id,name,pseudo,date FROM ip_qcm "); // la requête n'attend AUCUNE VARIABLE $requete->execute(); // tu vois.. AUCUNE VARIABLE à associer à la requête
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Max747
Messages postés
258
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
11 janvier 2024
22 déc. 2021 à 17:14
22 déc. 2021 à 17:14
Merci pour tes explications qui ne sont pas inutiles pour moi.
Car j'ai compris que cette ligne:
Ne comportant pas de variables (à la fin notamment) ne doit pas exécuter de variables comme c'était le cas sous PHP 7 sans comporter de message d'erreur.
En fait je viens de faire l'essai sous PHP 7 et cela fonctionne aussi sans la présence de ces 3 variables.
J'ai donc bien compris qu'il ne doit pas y avoir de variables après execute() lorsqu'il n'y en a pas dans la lignes requête!
C'est aussi avec l' exemple que tu m'as donné que j'ai compris plus facilement ce principe.
Tu as donc réussi à me faire comprendre ce que tu souhaitais que je comprenne.
Merci.
Sujet résolu.
Très cordialement.
Car j'ai compris que cette ligne:
$requete = $connection->prepare("SELECT id,name,pseudo,date FROM ip_qcm ");
Ne comportant pas de variables (à la fin notamment) ne doit pas exécuter de variables comme c'était le cas sous PHP 7 sans comporter de message d'erreur.
En fait je viens de faire l'essai sous PHP 7 et cela fonctionne aussi sans la présence de ces 3 variables.
J'ai donc bien compris qu'il ne doit pas y avoir de variables après execute() lorsqu'il n'y en a pas dans la lignes requête!
C'est aussi avec l' exemple que tu m'as donné que j'ai compris plus facilement ce principe.
Tu as donc réussi à me faire comprendre ce que tu souhaitais que je comprenne.
Merci.
Sujet résolu.
Très cordialement.
jordane45
Messages postés
38397
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 janvier 2025
4 732
22 déc. 2021 à 17:49
22 déc. 2021 à 17:49
Ce n'est pas tant une différence de version de php ... que de paramétrage au niveau de l'affichage ou non des différents types d'erreurs PHP et /ou PDO...
Cela passe par la configuration au niveau du serveur .. et/ou du fichier php.ini ... et ou l'utilisation de certains instructions dans le code php.
Cela passe par la configuration au niveau du serveur .. et/ou du fichier php.ini ... et ou l'utilisation de certains instructions dans le code php.
Max747
Messages postés
258
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
11 janvier 2024
22 déc. 2021 à 18:47
22 déc. 2021 à 18:47
Je pense aussi que c'est cela.
Merci pour tout.
Joyeux Noël et bonne fête de fin d'année.
Très cordialement.
Merci pour tout.
Joyeux Noël et bonne fête de fin d'année.
Très cordialement.