Update mysql ne fonctionne pas

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 : Update mysql ne fonctionne pas

Re: Update mysql ne fonctionne pas

par moogli » 25 juil. 2012, 12:33

salut,

pour info en SQL c'est des ' qu'il faut utiliser pour délimiter les chaines de caractère et non des "

donc
mysql_query('UPDATE table1 SET '.$language.'=\''.$text1.'\' WHERE text=1');

@+

Re: Update mysql ne fonctionne pas

par fabx22 » 24 juil. 2012, 14:10

J'ai enfin trouvé le problème.

mysql_query('UPDATE table1 SET '.$language.'="'.$text1.'" WHERE text=1');

il manquait juste deux guillemets. ^^

Merci beaucoup pour ton aide ;)

Fabx22

Re: Update mysql ne fonctionne pas

par xTG » 24 juil. 2012, 10:53

A faire aussi pour $language.
Et aussi text est un mot clef il me semble, donc notes le ainsi :
WHERE `text`=1

Re: Update mysql ne fonctionne pas

par fabx22 » 24 juil. 2012, 10:15

Code : Tout sélectionner

$text1=mysql_real_escape_string($_POST['text1']); $text2=mysql_real_escape_string($_POST['text2']); $text3=mysql_real_escape_string($_POST['text3']); $language=$_POST['language']; mysql_query('UPDATE table1 SET '.$language.'='.$text1.' WHERE text=1'); mysql_query('UPDATE table1 SET '.$language.'='.$text2.' WHERE text=2'); mysql_query('UPDATE table1 SET '.$language.'='.$text3.' WHERE text=3'); echo mysql_error();
En faisant comme ça il change les caractères mais c'est toujours le même problème :(

Re: Update mysql ne fonctionne pas

par xTG » 24 juil. 2012, 09:52

$variable = $_POST['variable']; // chaîne non protégée
$variable = mysql_real_escape_string($variable); // la chaîne est maintenant protégée et peut être utilisée dans une requête SQL

Re: Update mysql ne fonctionne pas

par fabx22 » 24 juil. 2012, 09:51

Hello,
J'ai cherché comment utiliser mysql_real_escape_string mais je ne comprend pas où l'intégrer

Merci

Re: Update mysql ne fonctionne pas

par xTG » 24 juil. 2012, 09:16

N.B : mysql_real_escape_string() pour échapper des variables qu'on insère dans une requête, sinon pof l'injection SQL. ;)

Re: Update mysql ne fonctionne pas

par fabx22 » 24 juil. 2012, 09:10

Merci
voilà ce que ça donne,

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 '= texte de la variable $text3

Re: Update mysql ne fonctionne pas

par xTG » 23 juil. 2012, 14:37

-1 ou autrement dit qu'une erreur est survenue je dirai.
Regardes ce que retournes mysql_error().

N.B : mysql_real_escape_string() pour échapper des variables qu'on insère dans une requête, sinon pof l'injection SQL. ;)

Update mysql ne fonctionne pas

par fabx22 » 23 juil. 2012, 13:39

Bonjour,

J'ai un problème avec mon code qui doit mettre à jour une base de donnée.

Code : Tout sélectionner

$connect = mysql_connect('localhost','root','root') or die ("erreur de connexion"); mysql_select_db('texts',$connect) or die ("erreur de connexion base"); $language=$_POST['language']; $text1=$_POST['text1']; $text2=$_POST['text2']; $text3=$_POST['text3']; $language=$_POST['language']; mysql_query("UPDATE table1 SET ".$language."=".$text1." WHERE text=1"); mysql_query("UPDATE table1 SET ".$language."=".$text2." WHERE text=2"); mysql_query("UPDATE table1 SET ".$language."=".$text3." WHERE text=3"); printf ("Lignes modifiées : %d\n", mysql_affected_rows()); mysql_close();
Il me retourne " Lignes modifiées : -1 " et les données ne changent pas...

Merci d'avance :)
Fabx22