Page 1 sur 2

Probleme de requete update

Posté : 20 janv. 2009, 18:20
par boumbata
Bonjour je suis debutant et j ai un probleme avec un update, avec cette requete plus rpecisement:

UPDATE articles SET (titre_article='dsfdqsf',texte_article='dsfqsdf',image='<img src=\"imagearticle/sdqfdqsf\" align=\"left\" border=\"1\" hspace=\"7\" alt=\"sdqfdqsf\" />',source_image='',date_article='2009-01-20 17:01:04',motscles_article='qsfdsfq') WHERE id_article = '12'

Je ne vois pas ou est l'erreur, j ai pourtant bien les caracteres d echappements qu il faut.
Si quelqu un peut regarder avec des yeux neufs?
Merci d'avance,

Posté : 20 janv. 2009, 18:24
par jojolapine
C'est ce que donne un echo de ta requête?
Tu l'as testée sous phpmyadmin?
un message d'erreur?

Posté : 20 janv. 2009, 18:26
par Boumbata
Oui en fait c est un echo,

dans phpmyadmin il me donne ce message d'erreur:
"#1064 - 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 '(titre_article='dsfdqsf',texte_article='bite',image='<img src=\"imagearticle/sdq' at line 1 "
Je ne le comprend pas :-(

Posté : 20 janv. 2009, 18:33
par jojolapine
il y a une quote de trop à la fin de l'url de ton image,e t aussi à tout tes attibuts html...

Posté : 20 janv. 2009, 18:37
par Invité
Ben en fait c simplement des doubles quotes, je pensais que ca marchait ... (le double quote du 3 quoi)
Je vais essayer sans merci, cela dit je doute vu qu'en insert ca marche comme ca

Posté : 20 janv. 2009, 18:40
par jojolapine
A pardon je croyait que c'était des simples quotes, dont la première était échappée...
Donc en fait tu les gardes (les doubles quotesà mais tu ne les échappes pas!
Tu n'en à pas besoin...

Posté : 20 janv. 2009, 18:46
par Boumbata
Ben merci de ton aide mais ca change rien

Posté : 20 janv. 2009, 18:48
par jojolapine
montre moi le code:
$sql="...";
tel qu'il est dans ton script....

Posté : 20 janv. 2009, 18:53
par Boumbata
$id_article2 =  $_POST['id_article'];
	$titre_article2 = $_POST['titre'];
	$titre_article2 = addslashes($titre_article2);
	$mots_article2 =  $_POST['mots'];
	$date_article2 =  $_POST['date'];
	//$date_article2 =  $date_article2
	$source_article2 =  $_POST['source'];
	$image_article2 =  $_POST['image'];
	//$image_article2 =  addslashes($image_article2);
	$texte_article2 =  $_POST['texte'];
	//$texte_article2 = addslashes($texte_article2);
	$query = "UPDATE articles SET (titre_article='$titre_article2', texte_article='$texte_article2', image='$image_article2',
                       source_image='$source_article2', date_article='$date_article2', motscles_article='$mots_article2')
                  WHERE id_article = '$id_article2'";
	
$Requete = $Base->Request ($query); //execution requete
echo $query;

Merci c vraiment sympa

Posté : 20 janv. 2009, 18:55
par jojolapine
Alors au lieu d'utiliser addslashes() utilise plutôt mysql_real_escape_string() (à condition bien sûr que tu travails sous mysql)
Ensuite, refait un echo de la requête içi si ça ne fonctionne toujorus pas...

Posté : 20 janv. 2009, 18:59
par Invité
************ ca marche toujours pas c l enfer !!!

UPDATE articles SET (titre_article='dsfdqsf', texte_article='cul',
image='<img src=\"imagearticle/sdqfdqsf\" align=\"left\" border=\"1\" hspace=\"7\" alt=\"sdqfdqsf\" />',
source_image='', date_article='2009-01-20 17:01:04', motscles_article='qsfdsfq') WHERE id_article = '12'

Posté : 20 janv. 2009, 19:03
par jojolapine
Houlà on s'énerve pas...
C'est normal que ça marche pas, as-tu au moins "echappée" le contenu de $_POST['image']?

la requête correcte devrait à priori ressembler à ça au final:

Code : Tout sélectionner

UPDATE articles SET ( titre_article='dsfdqsf', texte_article='cul', image='<img src="imagearticle/sdqfdqsf" align="left" border="1" hspace="7" alt="sdqfdqsf" />', source_image='', date_article='2009-01-20 17:01:04', motscles_article='qsfdsfq' ) WHERE id_article = '12'

Posté : 20 janv. 2009, 19:15
par Invité
Vi monsieur ^^,
Avec echappement ou sans echappement ma requete marche pas.

D'ailleurs si je prend ta requete et la passe dans phpmyadmin j'ai le meme message d erreur.

#1064 - 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 '(
titre_article='dsfdqsf',
texte_article='cul',
image='<img src="ima' at line 3

Merci de ta patience en tout cas.

Posté : 20 janv. 2009, 20:02
par albat
1. Pas de parenthèses dans le SET
2. Pas d'apostrophes sur une valeur numérique : WHERE id_article = 12
3. regarde si l'usage de NULL n'est pas préférable : source_image = NULL
$sql = "UPDATE articles
        SET    titre_article = 'dsfdqsf',
               texte_article = 'cul',
               image         = '<img src=\"imagearticle/sdqfdqsf\" align=\"left\" border=\"1\" hspace=\"7\" alt=\"sdqfdqsf\" />',
               source_image  = '',
               date_article  = '2009-01-20 17:01:04',
               motscles_article = 'qsfdsfq'
        WHERE  id_article = 12";

Posté : 20 janv. 2009, 20:10
par boumbata
Impeccable, merci beaucoup monsieur albat et merci a jojolapine pour sa patience.