EDITED TO ADD : следующий код устарел и не будет работать в PHP 7. Подробнее см. Примечание внизу ответа.
Предполагается, чтоструктура таблицы целочисленного идентификатора и столбца BLATA-данных, и предполагая, что функции MySQL используются для взаимодействия с базой данных, вы, вероятно, могли бы сделать что-то вроде этого:
$result = mysql_query 'INSERT INTO table (
data
) VALUES (
\'' . mysql_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf')) . '\'
);';
Слово предупреждения, сохраняяBLOB-объекты в базах данных, как правило, не считаются наилучшей идеей, поскольку они могут вызвать раздувание таблиц и связаны с рядом других проблем.Лучшим подходом было бы переместить файл куда-нибудь в файловой системе, где его можно извлечь, и сохранить путь к файлу в базе данных вместо самого файла.
Кроме того, использование вызовов функций mysql_ * не рекомендуется, поскольку эти методы фактически устарели и на самом деле не созданы с учетом версий MySQL, более ранних, чем 4.x.Вместо этого вам следует переключиться на mysqli или PDO.
ОБНОВЛЕНИЕ : функции 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.