if (!isset($_GET['k']) || $_GET['k'] == "" ) die ("Aucune clé de spécifiée" );
$key = $_GET['k'];
$sql = "SELECT * FROM loc_reservation WHERE md5_checksum='".$key."'";
echo $sql; // affichage de la requête pour contrôle
$res = mysql_query($sql) or die (mysql_error());
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...
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 ?
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à...)
Message édité par smasherhell le 16-03-2009 à 09:41:28
$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...
Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois. Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.