将包含空字节的字符串(PNG图像)写入PHP中的MySQL
如何在MySQL BLOB字段中写入和读取包含大量0字节的字符串(~200KB) 这不起作用:将包含空字节的字符串(PNG图像)写入PHP中的MySQL,php,mysql,Php,Mysql,如何在MySQL BLOB字段中写入和读取包含大量0字节的字符串(~200KB) 这不起作用: $data = ... // PNG image raw data $queryPart = "'" . addslashes($data) . "'"; ... compose and execute query 使用传统MySQL库时,正确的转义输入数据的方法是MySQL\u real\u escape\u string()。即使数据库“可以”,也不能存储二进制文件。在表中包含服务器上文件的路径
$data = ... // PNG image raw data
$queryPart = "'" . addslashes($data) . "'";
... compose and execute query
使用传统MySQL库时,正确的转义输入数据的方法是MySQL\u real\u escape\u string()。即使数据库“可以”,也不能存储二进制文件。在表中包含服务器上文件的路径更有效。使用mysql\u real\u escape\u string(),因为它调用mysql库来清除给定数据
是的,这将修复空字节问题,以及OP应用程序中当前存在的安全漏洞。谢谢Alvaro,但我知道这种方法,而且它对我也不起作用:(我相信问题出在用于从客户端传递数据的AMFPHP中。谢谢。
addslashes()
不是转义数据的安全方法。您应该使用mysql
或mysqli
库中提供的转义函数,或者使用跨数据库库(如PDO)。