PHP
Résolu/Fermé
SonSon86
Messages postés
4
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
8 février 2010
-
3 févr. 2010 à 16:48
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 4 févr. 2010 à 17:33
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 4 févr. 2010 à 17:33
4 réponses
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
3 févr. 2010 à 16:58
3 févr. 2010 à 16:58
Mais pourquoi toujours cette manie de stocker la connexion dans une variable lorsqu'il n'y en a qu'une ?
Dans substr, au lieu de faire $len - 2, fais directement -2.
Dans substr, au lieu de faire $len - 2, fais directement -2.
rep=mysql_query("select id_sing,type from singulier where mot='.$mot_singulier.'");On ne t'a jamais dis qu'une chaine devait toujours être en guillemets (simples ou doubles) ? Car au final c'est ça qui est exécuter par MySQL :
SELECT id_sing, type FROM singulier WHERE mot=avion
Bonjour
Pas d'accord avion-f16 Ce qui est exécuté c'est
Pas d'accord avion-f16 Ce qui est exécuté c'est
SELECT id_sing, type FROM singulier WHERE mot='.avion.'(ce qui ne change pas grand chose)
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
3 févr. 2010 à 18:08
3 févr. 2010 à 18:08
PHP remplace les variables par leur valeur avant d'envoyer la requête au serveur SQL.
Donc c'est bien
Donc c'est bien
SELECT id_sing, type FROM singulier WHERE mot=avionQui est envoyé à MySQL après avoir remplacer $mot_singulier par avion. Normalement la requête devrait être écrite comme ceci :
mysql_query('SELECT id_sing, type FROM singulier WHERE mot="'.$mot_singulier.'"');Et la, ça serait ça qui serait envoyé à MySQL :
SELECT id_sing, type FROM singulier WHERE mot="avion"
le père
>
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
3 févr. 2010 à 23:53
3 févr. 2010 à 23:53
Avec la requête $rep=mysql_query("select id_sing,type from singulier where mot='.$mot_singulier.'");, c'est bien select id_sing,type from singulier where mot='.avion.' qui est envoyé. Il n'y a aucun doute la-dessus. Je ne pensais pas que la substitution de variable dans les chaînes avait des secrets pour toi. Je te fais remarquer que la chaîne commence par un " et se termine par un autre ", et que les ' et . qui sont dedans ne sont donc ni des délimiteurs de chaînes (pour le PHP), ni des opérateurs de concaténation, mais de simples caractères ' et .
Je t'invite à faire un echo pour le vérifier.
Ta correction est bonne bien sûr. Pour modifier le moins possible celle proposée au départ, il suffit de retirer les deux points:
Je t'invite à faire un echo pour le vérifier.
Ta correction est bonne bien sûr. Pour modifier le moins possible celle proposée au départ, il suffit de retirer les deux points:
$rep=mysql_query("select id_sing,type from singulier where mot='$mot_singulier'");
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
>
le père
4 févr. 2010 à 17:33
4 févr. 2010 à 17:33
Désolé, j'avais mal regardé son code.
En voyant la concaténation (invalide) avec des simple quotes, j'ai pensé que la chaine était entre simple quotes.
En voyant la concaténation (invalide) avec des simple quotes, j'ai pensé que la chaine était entre simple quotes.
SonSon86
Messages postés
4
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
8 février 2010
3 févr. 2010 à 17:12
3 févr. 2010 à 17:12
slt, pour le substr() c en commentaire... :s