Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
2年前关闭。
我正在尝试使用blob类型将图片保存在MySQL数据库中。当我直接从phpMyAdmin上传它时,它工作正常。但是在我的PHP代码中,它不起作用。 mysqli_error方法返回
无效的utf8字符串:“ \ x89PNG”
注意:连接到数据库后,我使用以下代码:
当我删除它或插入jpg图片时,它也告诉我一个可怕的错误!
这是另一个错误:
您的SQL语法有误。检查与您的MySQL服务器版本相对应的手册,以在'???? \ 0JFIF \ 0 ,, \ 0 \ 0 ?? \ 0tExif \ 0 \ 0MM \ 0 * \ 0 \ 0 \ 0 \附近使用正确的语法第1行的0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0J \ 0 \ 0 \ 0'
我该怎么办?
(如@Marco所建议的。
否则,Base64可能是最好的选择。确实将占用空间扩大了8/6。
转义8位代码以构造要插入
问题中的utf8内容无关紧要。图像必须存储在
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
2年前关闭。
我正在尝试使用blob类型将图片保存在MySQL数据库中。当我直接从phpMyAdmin上传它时,它工作正常。但是在我的PHP代码中,它不起作用。 mysqli_error方法返回
无效的utf8字符串:“ \ x89PNG”
注意:连接到数据库后,我使用以下代码:
mysqli_set_charset($Inventory_db, 'utf-8');
mysqli_query($Inventory_db,"set names 'utf8'");
当我删除它或插入jpg图片时,它也告诉我一个可怕的错误!
这是另一个错误:
您的SQL语法有误。检查与您的MySQL服务器版本相对应的手册,以在'???? \ 0JFIF \ 0 ,, \ 0 \ 0 ?? \ 0tExif \ 0 \ 0MM \ 0 * \ 0 \ 0 \ 0 \附近使用正确的语法第1行的0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0J \ 0 \ 0 \ 0'
我该怎么办?
最佳答案
您也许可以使用LOAD_FILE()
功能。请参见https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_load-file手册中的限制
INSERT INTO ... (..., blob_col, ...)
VALUES
(..., LOAD_FILE('/path/to/file'), ...);
(如@Marco所建议的。
否则,Base64可能是最好的选择。确实将占用空间扩大了8/6。
转义8位代码以构造要插入
<img src=...>
的字符串的麻烦令人生畏。问题中的utf8内容无关紧要。图像必须存储在
BLOB
中,而不是BLOB
中(除非您已将其编码为base64或其他形式)。