php mysql обновление blob - PullRequest
       5

php mysql обновление blob

0 голосов
/ 20 февраля 2011

Впервые в PHP / mySql и возникли проблемы со вставкой и получением двоичных данных. У меня есть таблица mySql с именем usr_pressdata. Поле 'BinDat' имеет тип mediumblob.

$dat = $this->parseOverview($sql);
    // $dat is now a binary string

$datsql = "Update usr_pressdata Set BinDat = " . $dat;
$datresult = mysql_query($datsql, $this -> conn) or die(mysql_error());

$getdat = "Select * from usr_pressdata";
$getdatresult = mysql_query($getdat, $this -> conn) or die(mysql_error());
$row = mysql_fetch_array( $getdatresult );
   $retval = $row['BinDat'];

В этом примере моя цель состоит в том, чтобы $ retval == $ dat, но это не так. Я подозреваю, что моя строка запроса $ datsql неверна. Может кто-нибудь исправить этот пример кода? Спасибо.

1 Ответ

1 голос
/ 20 февраля 2011

При вставке значений в таблицу (или, в более общем случае, при включении значения в запрос SQL):

  1. строка должна быть заключена в кавычки ('...')
  2. строка должна быть "экранирована" с использованием mysql_real_escape_string, чтобы предотвратить SQL-инъекцию .

Так что вам нужно написать что-то вроде:

$request = "UPDATE usr_pressdata SET bindat= '" . mysql_real_escape_string($dat) . "';";

Я подозреваю, что вы можете добавить предложение WHERE someColumn = someCondition в конце, потому что, как и сейчас, это повлияет на все строки в таблице.

...