2012-03-30 2 views
-1

Je l'ai fait requête d'insertion:Erreur dans la syntaxe SQL?

INSERT INTO `giornale`.`Articolo` 
    (`id_articolo`, `titolo`, `didascalia`, `testo`, `immagine`, 
     `username_r`, `data_art`, `autore`, `id_categoria`, `numero_like`) 
VALUES (NULL, \'titoloooo\', \'ciao ciao\', \'texttttt\', \'immag\', 
      \'admin\', NOW(), \'prova\', \'3\', NULL); 

et il fonctionne très bien si je lance dans phpmyadmin éditeur SQL. Mais si je le fais dans mon script PHP, il me renvoie cette erreur:

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 '\'titoloooo\', \'ciao ciao\', \'texttttt\', \'immag\', \'admin\', NOW(), \'prova' at line 1

Comment puis-je résoudre ce problème?

Merci beaucoup!

+7

On dirait que vous échappez aux citations dont vous avez besoin. – Wiseguy

+3

Pouvez-vous nous montrer le code PHP? Et échappez-vous vraiment aux guillemets simples dans votre éditeur SQL? Cela devrait sûrement échouer. – MichaelRushton

Répondre

4

Je ne sais pas exactement pourquoi vous avez tous ces antislashs.

Supprimez et ça devrait aller.

INSERT INTO `giornale`.`Articolo` 
    (`id_articolo`, `titolo`, `didascalia`, `testo`, `immagine`, 
     `username_r`, `data_art`, `autore`, `id_categoria`, `numero_like`) 
VALUES (NULL, 'titoloooo', 'ciao ciao', 'texttttt', 'immag', 
      'admin', NOW(), 'prova', '3', NULL); 
+0

À moins qu'il n'utilise 'mysql_query ('INSERT INTO ...' – MichaelRushton

+0

@MichaelRushton et que la version échappée ait échoué ** dans phpmyadmin – Neal

+0

Oui, je l'ai mentionné comme commentaire à sa question – MichaelRushton

1

Vous n'avez pas besoin d'échapper à des guillemets simples

INSERT INTO `giornale`.`Articolo` 
    (`id_articolo`, `titolo`, `didascalia`, `testo`, `immagine`, 
     `username_r`, `data_art`, `autore`, `id_categoria`, `numero_like`) 
VALUES (NULL, 'titoloooo', 'ciao ciao', 'texttttt', 'immag', 
      'admin', NOW(), 'prova', '3', NULL); 
+0

À moins qu'il n'utilise 'mysql_query ('INSERT INTO ...' – MichaelRushton

+0

qui serait supposé, je ne fais que travailler avec ce qui était dans la question au moment de ma réponse. – ncremins

1

Utilisez des guillemets doubles pour la chaîne, vous pouvez utiliser des guillemets simples sans problème dans votre requête:

$query = "INSERT INTO `giornale`.`Articolo` (`id_articolo`, `titolo`, `didascalia`, `testo`, `immagine`, `username_r`, `data_art`, `autore`, `id_categoria`, `numero_like`) VALUES (NULL, 'titoloooo', 'ciao ciao', 'texttttt', 'immag', 'admin', NOW(), 'prova', '3', NULL);"; 
mysql_query($query); // or whatever 
0

Il Il me semble que le \ 'est amené à votre requête SQL. Essayez de supprimer l'échappement et utilisez des guillemets simples.

INSERT INTO `giornale`.`Articolo` 
    (`id_articolo`, `titolo`, `didascalia`, `testo`, `immagine`, 
     `username_r`, `data_art`, `autore`, `id_categoria`, `numero_like`) 
VALUES (NULL, 'titoloooo', 'ciao ciao', 'texttttt', 'immag', 
      'admin', NOW(), 'prova', '3', NULL); 
0

Si la chaîne entière était dans des guillemets simples ', il fonctionne très bien.

Il semble que vous utilisiez des guillemets doubles, auquel cas vous n'avez pas besoin d'échapper les guillemets simples.