Erreur SQL ! You have an error in your SQL
salimdrame
Messages postés
70
Date d'inscription
Statut
Membre
Dernière intervention
-
Mélité -
Mélité -
Bonjour,
ça fait maintenant des jours que je me penche sur ce problème.
Ma requête me retourne :
*********************************
Erreur SQL !
SELECT * FROM MaTable
WHERE mail_contact='LeMail' AND pass='******'
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
WHERE mail_contact='LeMail' AND pass='******'' at line 1
***********************************
En fait mon code traite un formulaire d'identification à 3 champs dont les données recueillies vont servir pour une identification du visiteur.
Le premier champ sert à identifier la table concernée dans la BDD, les deux autres à vérifier si le couple login et mot de passe existent bien dans la table prédéfinie.
Voici une portion de mon code
**************PHP******************
mysql_connect ("", "", "");
mysql_select_db ("");
$sql = "SELECT * FROM $sigle_etab WHERE mail_contact='$mail_contact' AND pass='$pass'";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['sigle_etab'] = $_POST['sigle_etab'];
header('Location: accueil.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
****************************************
J'ai essayé de remplacer les ' par des " et vice versa et aussi plein d'autres solutions d'aprés ce que j'ai eu à lire sur différents forums mais rien à faire. Je m'excuse d'avance si une réponse à déjà été donnée pour ce type d'erreur et vous demande de me communiquer l'emplacement si c'est le cas.
Si non, ou se trouve mon erreur, ou que dois je faire à la place?
Merci d'avance
ça fait maintenant des jours que je me penche sur ce problème.
Ma requête me retourne :
*********************************
Erreur SQL !
SELECT * FROM MaTable
WHERE mail_contact='LeMail' AND pass='******'
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
WHERE mail_contact='LeMail' AND pass='******'' at line 1
***********************************
En fait mon code traite un formulaire d'identification à 3 champs dont les données recueillies vont servir pour une identification du visiteur.
Le premier champ sert à identifier la table concernée dans la BDD, les deux autres à vérifier si le couple login et mot de passe existent bien dans la table prédéfinie.
Voici une portion de mon code
**************PHP******************
mysql_connect ("", "", "");
mysql_select_db ("");
$sql = "SELECT * FROM $sigle_etab WHERE mail_contact='$mail_contact' AND pass='$pass'";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['sigle_etab'] = $_POST['sigle_etab'];
header('Location: accueil.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
****************************************
J'ai essayé de remplacer les ' par des " et vice versa et aussi plein d'autres solutions d'aprés ce que j'ai eu à lire sur différents forums mais rien à faire. Je m'excuse d'avance si une réponse à déjà été donnée pour ce type d'erreur et vous demande de me communiquer l'emplacement si c'est le cas.
Si non, ou se trouve mon erreur, ou que dois je faire à la place?
Merci d'avance
A voir également:
- Erreur SQL ! You have an error in your SQL
- Erreur eespt-technical error ✓ - Forum TNT / Satellite / Réception
- Erreur 3005 france tv - Forum TV & Vidéo
- Deco in paris avis ✓ - Forum Consommation & Internet
- Network error iptv - Forum Réseaux sociaux
- Your device ran into a problem and needs to restart - Forum Windows 10
4 réponses
Bonjour,
Si tu n'as pas résolu ton problème envoi moi ton script et ta bdd sur samir_bogos"at"hotmail.com
a++
Si tu n'as pas résolu ton problème envoi moi ton script et ta bdd sur samir_bogos"at"hotmail.com
a++
salimdrame
Messages postés
70
Date d'inscription
Statut
Membre
Dernière intervention
1
J'apprécie Loudi, l'intention est noble. Mais je préfére ne pas communiquer certaines informations car le projet sur lequel je travaille est trés sensible. Cependant je peux te fournir plus d'infos de code si ca peux t'aider
s
a
Essayes de mettre des parenthese :
$sql = "SELECT * FROM $sigle_etab WHERE (mail_contact='$mail_contact') AND (pass='$pass')";
A +
$sql = "SELECT * FROM $sigle_etab WHERE (mail_contact='$mail_contact') AND (pass='$pass')";
A +
Bonjour :)
C'est très bizarre, tout a l'air juste...
Essaie de remplacer toutes les variables de ta requête par des vraies chaines de caractères, pour voir si le problème est là.
Ex.
En essayant de mettre des valeurs de façon à ce qu'elles correspondent à la table et qu'elles ne provoquent pas des erreurs de type Champ/Table Inconnu(e)...
C'est très bizarre, tout a l'air juste...
Essaie de remplacer toutes les variables de ta requête par des vraies chaines de caractères, pour voir si le problème est là.
Ex.
$sql = "SELECT * FROM Matable WHERE mail_contact='mail' AND pass='mot_de_passe'";
En essayant de mettre des valeurs de façon à ce qu'elles correspondent à la table et qu'elles ne provoquent pas des erreurs de type Champ/Table Inconnu(e)...
remplace
par
(guillemets autour de la variable qui te donne le nom de la table, comme tu l'as fait avec $mail_contact et $pass)
$sql = "SELECT * FROM $sigle_etab WHERE mail_contact='$mail_contact' AND pass='$pass'";
par
$sql = "SELECT * FROM '$sigle_etab' WHERE mail_contact='$mail_contact' AND pass='$pass'";
(guillemets autour de la variable qui te donne le nom de la table, comme tu l'as fait avec $mail_contact et $pass)