PHP - Erreur mysql avec WHERE
Résolu
PHPFANParis
-
PHPFANParis -
PHPFANParis -
Bonjour,
J'ai une erreur mysql : Unknown column 'maxou' in 'where clause'
Voici mon code
$login = $_SESSION['user'];
$del = mysql_query('DELETE FROM users WHERE login=' . $login)or die(mysql_error());
ma table contient 3 variables une variable id, une variable login et une variable code postal
Voici l'aspect de ma table
id (format int) | login (format text) | codep (format text)
2 | maxou | 75000
Ca marche quand je remplace WHERE login par where id ou par WHERE codep, mais pas pour login. Je ne comprends pas :/
J'ai une erreur mysql : Unknown column 'maxou' in 'where clause'
Voici mon code
$login = $_SESSION['user'];
$del = mysql_query('DELETE FROM users WHERE login=' . $login)or die(mysql_error());
ma table contient 3 variables une variable id, une variable login et une variable code postal
Voici l'aspect de ma table
id (format int) | login (format text) | codep (format text)
2 | maxou | 75000
Ca marche quand je remplace WHERE login par where id ou par WHERE codep, mais pas pour login. Je ne comprends pas :/
A voir également:
- PHP - Erreur mysql avec WHERE
- Mysql community server - Télécharger - Bases de données
- Erreur 0x80070643 - Accueil - Windows
- Expert php pinterest - Télécharger - Langages
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
2 réponses
Bonjour,
Ta requête telle que vue par MySQL :
DELETE FROM users WHERE login=Maxou
Il manque donc les quotes autour de Maxou, qui est une chaîne de caractère. Sinon, MySQL croit que Maxou est une colonne.
Ca marche quand tu mets la colonne ID parce que ton id est du type INT, et n'a donc pas besoin de quotes.
Bref, tout ça pour en venir à la correction suivante :
$del = mysql_query('DELETE FROM users WHERE login=\'' . $login.'\'')or die(mysql_error());
Ou, plus lisible à mon avis :
$del = mysql_query("DELETE FROM users WHERE login='$login' ")or die(mysql_error());
Xavier
Ta requête telle que vue par MySQL :
DELETE FROM users WHERE login=Maxou
Il manque donc les quotes autour de Maxou, qui est une chaîne de caractère. Sinon, MySQL croit que Maxou est une colonne.
Ca marche quand tu mets la colonne ID parce que ton id est du type INT, et n'a donc pas besoin de quotes.
Bref, tout ça pour en venir à la correction suivante :
$del = mysql_query('DELETE FROM users WHERE login=\'' . $login.'\'')or die(mysql_error());
Ou, plus lisible à mon avis :
$del = mysql_query("DELETE FROM users WHERE login='$login' ")or die(mysql_error());
Xavier