Php 将文件转换为blob以保存在数据库中

Php 将文件转换为blob以保存在数据库中,php,mysql,blob,Php,Mysql,Blob,我有一个旧的用户网站,我们目前正在更新。该网站的用户以前上传过存储在目录中的个人资料图片。我现在想在数据库中保存这些配置文件图像,(很容易备份所有数据),但我在解决如何备份方面遇到了困难 有很多教程都在讨论如何从刚刚上传的文件中使用tmp名称等来执行此操作,但是如何使用已经上传的文件重新创建 我已经调查过了 $data=file\u get\u contents($filename) 它似乎创建了一个二进制文件,但似乎没有保存在数据库中: mysql_query("UPDATE profiles

我有一个旧的用户网站,我们目前正在更新。该网站的用户以前上传过存储在目录中的个人资料图片。我现在想在数据库中保存这些配置文件图像,(很容易备份所有数据),但我在解决如何备份方面遇到了困难

有很多教程都在讨论如何从刚刚上传的文件中使用tmp名称等来执行此操作,但是如何使用已经上传的文件重新创建

我已经调查过了
$data=file\u get\u contents($filename)
它似乎创建了一个二进制文件,但似乎没有保存在数据库中:

mysql_query("UPDATE profiles SET company_logo = mysql_real_escape_string('".$data."') WHERE id = 1 ") or die(mysql_error());
*更新*
所以在进一步研究之后,我想我会和大多数人一起,把图片保存成现在的样子。。。在文件夹中..

将图像存储在数据库中通常不是一个好主意

最好将图像存储在文件中,并在字段或表中保留引用


但是,如果要存储它们,则必须将它们存储为BLOB(二进制大对象)。在BLOB字段上,不进行字符转换。存储它们时,必须与文件内容完全相同。因此,删除mysql\u real\u转义字符串
,因为它会弄乱二进制数据

请不要那样做。文件系统是一个很棒的文件数据库。你真的不应该在数据库中存储文件。文件应该留在文件系统中有很好的理由。看看为什么将图像存储在数据库中是个坏主意?我知道加载时间可能会稍微慢一点…总是很难不对db映像存储发起战争:)看看这个讨论:删除mysql\u real\u escape\u字符串可能很危险。想想如果你真的有了类似于
”的东西会发生什么;下降表x在文件中?更好的方法是使用准备好的语句,然后使用blob数据执行它们。对于blob存储,您必须删除mysql\u real\u escape\u字符串,否则二进制数据将(可能)混乱,具体取决于内容。我同意,如果存储二进制数据,就应该始终使用参数绑定。