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