Создание операторов MySQL UPDATE, содержащих данные изображения BLOB - PullRequest
0 голосов
/ 13 апреля 2010

Я пытаюсь написать оператор SQL, который сгенерирует скрипт SQL, который обновит поле BLOB с выбранным ИЗОБРАЖЕНИЕМ из базы данных.

Вот что у меня есть:

select concat( 'UPDATE `IMAGE` SET THUMBNAIL = ', 
               QUOTE( THUMBNAIL ), 
               ' WHERE ID = ', ID, ';' ) as UPDATE_STATEMENT
  from IMAGE;

В приведенном выше описании THUMBNAIL - это поле BLOB, содержащее необработанные данные изображения. Когда я запускаю полученный скрипт, я получаю следующую ошибку:

ERROR at line 2: Unknown command '\\'.

Я впервые попробовал это без функции QUOTE (), вот так:

select concat( 'UPDATE `IMAGE` SET THUMBNAIL = \'', 
               THUMBNAIL, 
               '\' WHERE ID = ', ID, ';' ) as UPDATE_STATEMENT
  from IMAGE;

Запуск результирующего скрипта приводит к этой ошибке:

ERROR at line 2: Unknown command '\0'.

Какую функцию следует применить к этому полю BLOB в select, чтобы операторы UPDATE работали?

Если требуется контекст, я хочу перенести эскизы, созданные на одном сервере, на другой сервер только для определенных идентификаторов изображений. Я бы использовал mysqldump, но я не хочу загромождать всю таблицу.

Любая помощь очень ценится!

Ответы [ 2 ]

1 голос
/ 13 апреля 2010

Вы должны работать с шестнадцатеричным форматом BLOB. Это выглядит так:

select concat( 'UPDATE `IMAGE` SET THUMBNAIL = ', 
               0xC9CBBBCCCEB9C8CABCCCCEB9C9CBBB...., 
               ' WHERE ID = ', ID, ';' ) as UPDATE_STATEMENT
  from IMAGE;

Или вам может пригодиться команда Openrowset

0 голосов
/ 21 марта 2013
 <?php if (isset($_POST['sub'])) { 
     $tfname=$_FILES['f1']['tmp_name'];
     $name=$_POST['hi']; 
     $cont=file_get_contents($tfname);
     $cont=addslashes($cont); 
     mysql_connect("localhost" ,"root" ,"");
     mysql_select_db("k"); 
     $sqlstt="update test_image set
         id='2',name='$name',image='$cont' where id='2' ";
     if(mysql_query($sqlstt)) 
         echo "updated"; 
     else 
         echo "not";         
 } ?>

 <form action="" method="post" enctype="multipart/form-data">
     Name:-<input type="text" name="hi" /> 
     select image:-<input type="file" name="f1" required value="select" /> 
     <input type="submit" name="sub" value="update" /> 
 </form>  

это хорошо сработало, зацените

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...