如何使用 PHP 将 .pdf 文件作为 BLOB 存储到 MySQL 中?

2024-01-09

如何从 PHP 将 .pdf 文件作为 BLOB 存储到 MySQL 中?


编辑添加:以下代码已过时,无法在 PHP 7 中运行。有关更多详细信息,请参阅答案底部的注释。


假设一个由整数 ID 和 blob DATA 列组成的表结构,并假设 MySQL 函数用于与数据库交互,您可能可以这样做:

$result = mysql_query 'INSERT INTO table (
    data
) VALUES (
    \'' . mysql_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf')) . '\'
);';

不过,需要警告的是,在数据库中存储 blob 通常不被认为是最好的主意,因为它可能会导致表膨胀并产生许多与之相关的其他问题。更好的方法是将文件移动到文件系统中可以检索的位置,并将文件的路径而不是文件本身存储在数据库中。

Also, using mysql_* function calls is discouraged as those methods are effectively deprecated and aren't really built with versions of MySQL newer than 4.x in mind. You should switch to mysqli or PDO instead.

UPDATE: mysql_* 函数是已弃用在 PHP 5.x 中是在 PHP 7 中完全删除!您现在别无选择,只能切换到更现代的数据库抽象(MySQLI、PDO)。由于历史原因,我决定保留上面的原始答案,但实际上并不使用它

以下是在过程模式下使用 mysqli 执行此操作的方法:

$result = mysqli_query ($db, 'INSERT INTO table (
    data
) VALUES (
    \'' . mysqli_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf'), $db) . '\'
);');

理想的方法是使用 MySQLI/PDO 准备好的语句。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 PHP 将 .pdf 文件作为 BLOB 存储到 MySQL 中? 的相关文章

随机推荐