Se connecter / S'enregistrer
Votre question

Probleme WHERE clause MYSQL

Tags :
  • Sql
  • Programmation
Dernière réponse : dans Programmation
16 Mars 2009 00:42:05

Voici mon petit bout de code :
  1. $lnk = mysql_connect($server, $user, $pass);
  2. mysql_select_db($base);
  3.  
  4. if (!isset($_GET['k']) || $_GET['k'] == "" ) die ("Aucune clé de spécifiée");
  5. $key = $_GET['k'];
  6. $sql = "SELECT * FROM loc_reservation WHERE md5_checksum='".$key."'";
  7. echo $sql; // affichage de la requête pour contrôle
  8. $res = mysql_query($sql) or die (mysql_error());
  9. if (mysql_num_rows($res) != 1) die (" Erreur la clé est invalide ou dupliquée :".$_GET['k']);


Ce petit bout de code est donc sensé chercher dans la base de donnée la ligne ou la clé et le md5 sont les mêmes...

or sur il me renvoit :
Unknown column 'e886e6e27e9c0d534e2f187d372410e8' in 'where clause'

je reste perplexe devant ceci je l'avoue...car cette requête marche très bien sur mon serveur local (easyphp 3) et la requête fonctionne à 100% directement dans phpmyadmin...mais pas sur la page en question...si vous avez des idée la dessus, j'ai déjà testé avec et sans les quote en passant par LIKE au lieu de = bref j'ai épuisé mes connaissances la...

Autres pages sur : probleme where clause mysql

16 Mars 2009 01:10:32

Quel est la version Mysql de ton easyphp et celle de ton hébergeur ? (quel est t'il si pas indiscret ?)

Et si tu renome ton champ autrement que part md5_checksum pour un test, meme résultat ?
md5_checksum ne serait pas par hasard, une fonction mysql qui, justement, suivant les version de celui-ci rentrerait en conflit ?

quel est le type de ton champ md5_checksum ?
16 Mars 2009 09:33:55

j'ai mysql 5.1 sur mon local et 5.0 sur 1and1 (c'est merdique m'ais c pas moi qui est choisi, et dès le premier upload j'aurais changer en voyant les erreur s'affiché alors que mon easyphp est reglé pour etre strict )

EDIT : mon champ md5_checksum est un VARCHAR(32) (normal pour un md5)

EDIT 2 : J'ai changer le nom de la colonne, toujours la même erreur, a savoir qu'il me prend la valeur a chercher pour le nom de colonne...

J'ai regarder pour trouver une fonction ou un mot réservé sans succès pour mysql je vais donc essayer le dernier recours...a savoir modifié le champ... (je trouve curieux que ma requête ne fonctionne pas quand même...y'a aucune erreur de syntaxe là...)
16 Mars 2009 10:03:05

  1. $sql = "SELECT * FROM `loc_reservation` WHERE `md5_checksum`='".$key."'";


Voilà la réponse qui a fonctionné, je ne sais pas pourquoi cette requête ainsi que toute celles de cette page spécifiquement était sensible, si les autres pages, les requête ne sont pas aussi strict...
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS