2012-03-30 10 views
-1

Ich habe diese Insert-Abfrage:Fehler in SQL-Syntax?

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

und es funktioniert gut, wenn ich es in phpMyAdmin SQL-Editor starten. Aber wenn ich es in meinem PHP-Skript mache, gibt es mir diesen Fehler zurück:

Wie kann ich das beheben?

Vielen Dank!

+7

Sieht so aus, als entkommst du den Anführungszeichen, die du haben musst. – Wiseguy

+3

Können Sie uns den PHP-Code zeigen? Und entkommst du wirklich die einfachen Anführungszeichen in deinem SQL-Editor? Das sollte doch scheitern. – MichaelRushton

Antwort

4

Ich bin mir nicht sicher, warum Sie all diese Backslashes haben.

Entfernen Sie sie und Sie sollten in Ordnung sein.

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

Wenn er nicht 'mysql_query ('INSERT INTO ...' – MichaelRushton

+0

@MichaelRushton gut und die Escape-Version sollte ** gescheitert ** in phpmyadmin haben – Neal

+0

Ja, ich erwähnte das als Kommentar zu seiner Frage. – MichaelRushton

1

Sie brauchen nicht Apostrophe

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

Wenn er nicht 'mysql_query ('INSERT INTO ...' – MichaelRushton

+0

) verwendet, würde ich nur mit dem arbeiten, was in der Frage zum Zeitpunkt meiner Antwort war. – ncremins

1

Verwenden Sie doppelte Anführungszeichen für die Zeichenfolge zu entkommen, dann können Sie einfache Anführungszeichen ohne Probleme in Ihrer Abfrage verwenden:

$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

Es schaut mir zu, dass das \ 'zu deiner SQL-Abfrage gebracht wird. Versuchen Sie, das Escaping zu entfernen, und verwenden Sie nur einfache Anführungszeichen.

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

Wenn die ganze Zeichenfolge in einfachen Anführungszeichen waren ', wäre es gut funktionieren.

Es sieht so aus, als ob Sie doppelte Anführungszeichen verwenden. In diesem Fall müssen Sie die einfachen Anführungszeichen nicht umgehen.