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不正确。有人能纠正这个示例代码吗?谢谢。
答案 0 :(得分:1)
在表中插入值时(或者更常见的是,在SQL请求中包含值时):
mysql_real_escape_string
“转义”字符串,以防止SQL injection。所以你需要写一些像:
$request = "UPDATE usr_pressdata SET bindat= '" . mysql_real_escape_string($dat) . "';";
我怀疑你可能想在最后添加一个WHERE someColumn = someCondition
子句,因为现在它会影响表中的所有行。