#1064 - You have an error in your SQL syntax

Résolu/Fermé
IEDfactory
Messages postés
36
Date d'inscription
lundi 12 décembre 2016
Statut
Membre
Dernière intervention
29 mars 2018
- 20 déc. 2016 à 09:39
 Utilisateur anonyme - 20 déc. 2016 à 12:17
Bonjour à tous et merci d'avance pour vos retours éventuels,

Que je fasse cette requête
UPDATE 
ps_product_lang
SET 
description= REPLACE(description '1111 1111 111 (0,09 cts/min)', '22 22 22 22 22 (prix d\'un appel local)');


ou

UPDATE 
ps_product_lang
SET 
description= REPLACE(description '1111 111 111 (0,09 cts/min)', '22 22 22 22 22 (prix d\'un appel local)')
WHERE description LIKE '%1111 111 111 (0,09 cts/min)%'


ou

UPDATE 
ps_product_lang
SET 
description= REPLACE(description '1111 111 111 (0,09 cts/min)', '22 22 22 22 22 (prix d\'un appel local)')
WHERE description LIKE '%1111 111 111 (0,09 cts/min)%';


J'ai ce message d'erreur :
Erreur
Requête SQL :
UPDATE
ps_product_lang
SET
description= REPLACE(description '1111 111 111 (0,09 cts/min)', '22 22 22 22 22 (prix d\'un appel local)')
WHERE description LIKE '%1111 111 111 (0,09 cts/min)%'
MySQL a répondu: Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''1111 1111 111 (0,09 cts/min)', '22 22 22 22 22 (prix d\'un appel local)')
WHER' at line 4

Précision je suis sur MariaDB
Merci de vos retours !
A voir également:

3 réponses

jordane45
Messages postés
36048
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 août 2022
4 276
20 déc. 2016 à 09:51
Bonjour,

Commence par faire une requête du genre :
SELECT *
FROM ps_product_lang
WHERE description LIKE '%1111 111 111 (0,09 cts/min)%' 

et dis nous ce que ça te donne

=> Requête à faire DIRECTEMENT (via phpmyadmin par exemple) dans ta BDD

0
IEDfactory
Messages postés
36
Date d'inscription
lundi 12 décembre 2016
Statut
Membre
Dernière intervention
29 mars 2018

20 déc. 2016 à 09:59
Merci de ce retour !
Message : MySQL a retourné un résultat vide (aucune ligne). (Traitement en 0.2172 secondes.)
0
jordane45
Messages postés
36048
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 août 2022
4 276
20 déc. 2016 à 10:06
Tu as un souci dans le replace je pense
description= REPLACE(description '1111 111 111 (0,09 cts/min)', '22 22 22 22 22 (prix d\'un appel local)')


A changer par
<code sql>
description= REPLACE(description , '1111 111 111 (0,09 cts/min)', '22 22 22 22 22 (prix d\'un appel local)')

</code>
0
Utilisateur anonyme
20 déc. 2016 à 10:00
Bonjour

Tu as oublié une virgule entre description et '111...'
0
IEDfactory
Messages postés
36
Date d'inscription
lundi 12 décembre 2016
Statut
Membre
Dernière intervention
29 mars 2018

20 déc. 2016 à 10:19
Bon ! On avance ! en effet, avec la virgule j'ai un message :
0 ligne affectée. (Traitement en 0.1060 secondes.)

La sémantique est donc bonne ! je crois comprendre.

La chaîne de caractère est dans un code html et quand j'édite le champs dans la BD j'ai : 1111 1111 111 <em>(0,09 cts/min)

Je pense donc que bêtement je n'ai pas tenu compte de la syntaxe HTML !!!
0
IEDfactory
Messages postés
36
Date d'inscription
lundi 12 décembre 2016
Statut
Membre
Dernière intervention
29 mars 2018

20 déc. 2016 à 10:25
j'ai un doute sur la compréhension de ce que vous me dites....
syntaxe = commande bonne
sémantique = l'écriture de la chaîne de caractère à remplacer

C'est cela ?
0
Utilisateur anonyme
20 déc. 2016 à 10:49
La syntaxe, c'est l'ensemble des règles à respecter pour écrire (ou parler) correctement un langage. La grammaire, en quelque sorte. Donc ici, oui c'est une erreur de syntaxe qui a été corrigée.
Je ne m'aventurerai pas à essayer de donner une définition correcte de la sémantique, disons qu'elle se rapporte à la signification de ce qui est écrit.
0
IEDfactory
Messages postés
36
Date d'inscription
lundi 12 décembre 2016
Statut
Membre
Dernière intervention
29 mars 2018

20 déc. 2016 à 10:52
OK on est d'accord, mais ma question était sur le code HTML qui est dans les champs de ma BDD...
0
Utilisateur anonyme
20 déc. 2016 à 11:01
La question à laquelle j'ai répondu dans mon message #8 était celle posée à ton message 7, qui portait sur les définitions de deux mots.
Quant au fait que le replace ne fonctionne pas, il est évident que si la chaîne que tu lui dis de remplacer n'est pas dans ta BDD, il ne la remplace pas. D'après ce que tu montres, non seulement il y a une balise en plus, mais il y a aussi un '1'
0
IEDfactory
Messages postés
36
Date d'inscription
lundi 12 décembre 2016
Statut
Membre
Dernière intervention
29 mars 2018

20 déc. 2016 à 11:13
OK merci de vos conseils , je vais dans cette voie et reviens vers vous pour retour...
0