Probleme de requete update

boumbata
Invité n'ayant pas de compte PHPfrance

20 janv. 2009, 18:20

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,

ViPHP
ViPHP | 3607 Messages

20 janv. 2009, 18:24

C'est ce que donne un echo de ta requête?
Tu l'as testée sous phpmyadmin?
un message d'erreur?

Boumbata
Invité n'ayant pas de compte PHPfrance

20 janv. 2009, 18:26

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 :-(

ViPHP
ViPHP | 3607 Messages

20 janv. 2009, 18:33

il y a une quote de trop à la fin de l'url de ton image,e t aussi à tout tes attibuts html...

Invité
Invité n'ayant pas de compte PHPfrance

20 janv. 2009, 18:37

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

ViPHP
ViPHP | 3607 Messages

20 janv. 2009, 18:40

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...

Boumbata
Invité n'ayant pas de compte PHPfrance

20 janv. 2009, 18:46

Ben merci de ton aide mais ca change rien

ViPHP
ViPHP | 3607 Messages

20 janv. 2009, 18:48

montre moi le code:
$sql="...";
tel qu'il est dans ton script....

Boumbata
Invité n'ayant pas de compte PHPfrance

20 janv. 2009, 18:53

$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

ViPHP
ViPHP | 3607 Messages

20 janv. 2009, 18:55

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...

Invité
Invité n'ayant pas de compte PHPfrance

20 janv. 2009, 18:59

************ 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'

ViPHP
ViPHP | 3607 Messages

20 janv. 2009, 19:03

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'

Invité
Invité n'ayant pas de compte PHPfrance

20 janv. 2009, 19:15

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.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

20 janv. 2009, 20:02

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";

boumbata
Invité n'ayant pas de compte PHPfrance

20 janv. 2009, 20:10

Impeccable, merci beaucoup monsieur albat et merci a jojolapine pour sa patience.