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.