[RESOLU] Eviter "You have an error in your SQL syntax"

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Eviter "You have an error in your SQL syntax"

Re: Eviter "You have an error in your SQL syntax"

par ISoon » 23 janv. 2014, 20:20

Merci de votre aide,

J'ai trouver ceci :
if($_POST) {
$photo1 = $_POST['photo1'];
$photo2 = $_POST['photo2'];



$sql = "INSERT INTO duel(photo1, photo2)";
$sql .= "VALUES('$photo1', '$photo2')";
$result = mysql_query($sql) or die(mysql_error());
}

Re: Eviter "You have an error in your SQL syntax"

par moogli » 23 janv. 2014, 16:45

de plus la requête est ouverte aux injections SQL (cf google)
$sql= mysql_query("INSERT INTO duel (photo1,photo2,expiration) VALUES ('$photo1','$photo2','$expiration'") or die(mysql_error());

il faut impérativement utiliser mysql_realescape_string (ou équivalent des extensions indiquées par sirakawa)


@+

Re: Eviter "You have an error in your SQL syntax"

par sirakawa » 23 janv. 2014, 15:51

Quoi qu'il en soit:
1) Il faut remplacer mysql par mysqli ou pdo (mysql est obsolete et dera abandonné à terme par php)
2) Il est plus commode de procéder en deux temps:
$requete = "INSERT ....";
//print "<br>$requete"; en cas d'erreur,on peut copier la requete dans phpmyadmi_n ou similaire
$resultat = mysqli_query($requete)
if ($resultat === fale
{
}
else
{
}

Re: Eviter "You have an error in your SQL syntax"

par synergie » 23 janv. 2014, 15:41

J'avais pas vu que ta paranthèse à la fin était mal fermé. Il te manquait une paranthèse. Ca, ça devrait marcher :
$sql= mysql_query("INSERT INTO duel ('photo1','photo2','expiration') VALUES ('$photo1','$photo2','$expiration')") or die(mysql_error());

Re: Eviter "You have an error in your SQL syntax"

par ISoon » 23 janv. 2014, 15:34

Pourquoi essaye tu 2 fois d'envoyer ta requète, en plus la 2ème fois tu utilise la valeur retour, soit TRUE ou FALSE

enlève ton 2ème appel à mysql_query et fait ce qui est dit plus haut

J'avais oublié de l'enlever, je l'ai enlevé toujours la même erreur.

Re: Eviter "You have an error in your SQL syntax"

par ISoon » 23 janv. 2014, 15:34

Mets des côtes entre photo1,photo2 et expiration :

Code : Tout sélectionner

$sql= mysql_query("INSERT INTO duel ('photo1','photo2','expiration') VALUES ('$photo1','$photo2','$expiration'") or die(mysql_error());

Voilà l'erreur quand j'ai copié votre code :

"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 ''photo1','photo2','expiration') VALUES ('http://localhost/TBP/upload/1/52e11a222' at line 1"

Re: Eviter "You have an error in your SQL syntax"

par Spols » 23 janv. 2014, 15:28

Pourquoi essaye tu 2 fois d'envoyer ta requète, en plus la 2ème fois tu utilise la valeur retour, soit TRUE ou FALSE

enlève ton 2ème appel à mysql_query et fait ce qui est dit plus haut

Re: Eviter "You have an error in your SQL syntax"

par synergie » 23 janv. 2014, 15:26

Mets des côtes entre photo1,photo2 et expiration :

Code : Tout sélectionner

$sql= mysql_query("INSERT INTO duel ('photo1','photo2','expiration') VALUES ('$photo1','$photo2','$expiration'") or die(mysql_error());

Eviter "You have an error in your SQL syntax"

par ISoon » 23 janv. 2014, 15:13

Bonjour,
je créé un site web et j'ajoute des liens d'images dans ma base de donnée mais quand j'insert les liens, j'ai cette erreur :
$date_ac = time();

$nb_jour_pub = 7;
$date_calcul = ($nb_jour_pub * 24) * 3600;
$expiration = $date_ac + $date_calcul;
$photo1 = mysql_real_escape_string($_POST['photo1']);
$photo2 = mysql_real_escape_string($_POST['photo2']);
$sql= mysql_query("INSERT INTO duel (photo1,photo2,expiration) VALUES ('$photo1','$photo2','$expiration'") or die(mysql_error());
 
 $requete = mysql_query($sql) or die(mysql_error());

Et voici mon erreur :
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 '' at line 1
Merci beaucoup de votre aide