我有一个以自定义二进制格式制作的日志文件。此日志文件上传到服务器,PHP将其插入MySQL数据库,如此
$tmpName = $_FILES['file']['tmp_name'];
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$query = "INSERT INTO device_log (dID, deviceLog) VALUES ( '$res1', '$content')";
但这并不总是有效,因为SQL的内容有问题,有时会出现You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '««»»Qì™úX' at line 1
错误。
我已经读过你需要使用像mysql_real_escape_string
这样的数据来逃避数据,但是这会破坏初始数据,即我无法读回来。插入这样一个blob的正确方法是什么?
答案 0 :(得分:1)
您可能希望在插入数据库之前对数据进行base64编码,这可能会缓解您的问题(在读取数据时需要对数据进行base64解码)。