Тип image
устарел, поэтому не используйте его.
Краткий ответ - использовать тип FILESTREAM
, если это SQL 2008, или varbinary(max)
, если это 2005 или более ранняя версия.
Лучший ответ - использовать тип FILESTREAM
, если это SQL 2008, и вообще не хранить изображения в базе данных. Базы данных не созданы для такого типа вещей, и добавление больших двоичных объектов может значительно снизить производительность. FILESTREAM
обходит проблему, сохраняя фактические данные в файловой системе; все остальное - нестандартное решение.
Что касается того, как читать и писать в столбец varbinary
, если вы решите использовать этот неидеальный подход, он будет представлен как поток в PHP. Это то, что вы получаете из запроса в качестве значения столбца, и я считаю, что это то, что вы должны указать в качестве параметра.