Ошибка при загрузке JPEG в MySQL - PullRequest
0 голосов
/ 09 мая 2011

Я получаю сообщение об ошибке ниже при попытке загрузить изображение JPEG в мою базу данных MySQL (изображение является BLOB):

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 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 'WHERE id=57 (Image)  VALUES ('ÿØÿà\0JFIF\0\0\0\0\0\0ÿá\0XExif\0\0MM\0*\0\0\' at line 1

Буду очень признателен, если вы сообщите мне проблему в моем коде.

$sql = sprintf(
"INSERT INTO recipies WHERE id=$id (Image) VALUES ('%s')", mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"])));
$results = mysql_query($sql) or die(mysql_error());

Ответы [ 3 ]

1 голос
/ 09 мая 2011

Его вставка или обновление где.

Возможно, вы захотите:

$sql = sprintf(
"UPDATE recipies SET Image = '%s' WHERE id=$id", mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"])));
$results = mysql_query($sql) or die(mysql_error());
1 голос
/ 09 мая 2011

Может быть, это будет более правильный синтаксис

$sql = sprintf(
"INSERT INTO recipies (Image) VALUES ('%s') ", mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"])));
$results = mysql_query($sql) or die(mysql_error());

РЕДАКТИРОВАТЬ

Кажется, вы путаетесь с синтаксисом SQL UPDATE и с MySQL.Таким образом, правильный синтаксис будет

INSERT
    [INTO] tbl_name [(col_name,...)]
    {VALUES | VALUE} ({expr | DEFAULT},...),(...),...

или :

INSERT 
    [INTO] tbl_name
    SET col_name={expr | DEFAULT}, ...

Итак, ваш друг - MySQL :: INSERT Manual Синтаксис .Счастливого запроса!

0 голосов
/ 09 мая 2011

Похоже, вы пытаетесь обновить, а не вставить

UPDATE recipes SET Image= ('%s') WHERE id = %d
...