[MySQL-PHP] Egalité sur 2 strings qui ne fonctionne pas [résolu]

Egalité sur 2 strings qui ne fonctionne pas [résolu] [MySQL-PHP] - PHP - Programmation

Marsh Posté le 01-02-2009 à 10:51:33    

Bonjour, je suis en train de réaliser un site web avec une base de donnée mysql 5 en utf 8 et du php codé en norme iso.
J'ai besoins de supprimer une ligne dans une table en la localisant avec un champs x varchar selon une valeur $y.
 
J'ai donc une requête du type mysql_query("DELETE FROM $table WHERE $x = '$y'" );
Le problème c'est que j'ai beau tout essayer, le matching ne se produit pas, j'ai tenté le x LIKE '$y', le x LIKE('$y'), la conversion du y en utf-8 avec utf8_encode($y) du php, et rien a faire, la base de donnée ne veut rien savoir.
 
A noter que je fais un mysql_real_escape_string() sur toute donnée entrée dans la base de donnée (et donc sur le $y également).
 
J'utilise mal le LIKE ?, dois-je passer mes fichiers .php en utf-8 ?  Si quelqu'un a une idée de ce qui provoque le blocage, il est le bienvenu.
 
Merci.
 
Siron


Message édité par Siron le 01-02-2009 à 18:28:29
Reply

Marsh Posté le 01-02-2009 à 10:51:33   

Reply

Marsh Posté le 01-02-2009 à 11:59:54    

Après d'autre essais, j'en viens a déterminer que le problème ne se déroule que sur une colonne var char.
 
En fait j'ai deux colonnes var char qui sont ensemble une primary key, la colonne A et B (toutes les 2 sont des varchar).
Quand je fais l'égalité avec A, pas de problème, mais quand j'implique B (seul ou avec A), la requête échoue systématiquement avec comme erreur un problème de syntaxe selon mysql.

Reply

Marsh Posté le 01-02-2009 à 15:39:16    

fait çà :

Code :
  1. echo "DELETE FROM table WHERE x = '$y'";


Qu'est-ce qui s'affiche ? (dans ton exemple avais mis des '$' devant les noms de tables/colonnes, je suppose que c'est un exemple vite fait, pas ce que tu as réellement mis ?)
Et comment çà marche avec cette requête ?

Code :
  1. DELETE FROM TABLE WHERE x LIKE '%y%'


Message édité par Profil supprimé le 01-02-2009 à 15:39:32
Reply

Marsh Posté le 01-02-2009 à 18:27:37    

J'avais mit des $ parce que ce sont des variables d'une méthode (variable qui seront parsées par php si il y a des "" ).  
 
En fait j'ai résolu mon problème, c'était con  :sweat: .  J'avais un nom de colonne "add", j'avais pas du tout pensé que ça pouvait être un mot réservé, et les messages d'erreur de mysql étaientt pas du tout explicites.  C'est le genre de truc qui me fait détester l'informatique, 3 heures de perdu pour ça   :cry:  
 
Je te remercie pour avoir répondu  :jap:  
 
Siron

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed