php mysql update blob

时间:2011-02-20 08:56:26

标签: php mysql string binary blob

PHP / mySql新手,无法插入和检索二进制数据。我有一个名为usr_pressdata的mySql表。 “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 个答案:

答案 0 :(得分:1)

在表中插入值时(或者更常见的是,在SQL请求中包含值时):

  1. 字符串必须用引号('...')
  2. 括起来
  3. 必须使用mysql_real_escape_string“转义”字符串,以防止SQL injection
  4. 所以你需要写一些像:

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

    我怀疑你可能想在最后添加一个WHERE someColumn = someCondition子句,因为现在它会影响表中的所有行。