首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL存储BLOB的正确方法(不保存本地磁盘)

MySQL存储BLOB的正确方法(不保存本地磁盘)
EN

Stack Overflow用户
提问于 2014-12-03 03:38:37
回答 1查看 510关注 0票数 0

如果我使用cURL下载图像,并希望将图像存储在BLOB类型的MySQL字段中,那么我该如何处理呢?通常,我会使用load_file() mysql函数作为本地文件,但是在这个特定的问题中,我不想故意将文件保存在磁盘上。

来自CURL的原始图像数据在变量$image中,我可以像这样显示它

代码语言:javascript
复制
echo "<img src='data:image/jpeg;base64," . base64_encode($image) . "' />";

现在,当我将它添加到数据库时,我在使用MySQL驱动程序的查询中出现了错误

代码语言:javascript
复制
$query = "INSERT into images ( image_blob ) VALUES ( '{$image}' )";

(请注意,我不是故意在本例中使用PDO或MySQLi驱动程序)

在这种情况下我应该做什么,我找不到答案,所以我尝试了以下功能之一

代码语言:javascript
复制
addslashes($image) 
mysql_real_escape_string($image)
bin2hex($image)
base64_encode($image)

每个人都可以解决问题并存储图像,但是在这种情况下,哪一个是使用的权利?

尽管每个函数产生不同长度的字符串,但我注意到每次phpMyAdmin中报告的文件大小都是相同的,为什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-03 04:28:06

对于(mysql)数据库查询,使用mysql_real_escape_string()。

它们的大小相同,因为对于blob数据类型,MySQL将blob的实际内容存储在外部,而不是在表中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27263211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档