Вставка объектов BLOB-объектов в Yii без использования форм - PullRequest
1 голос
/ 07 февраля 2012

Мне нужен способ вставки изображений в базу данных PostgreSQL без использования форм.У меня есть папка, которая содержит набор изображений с именами скажем aa.jpg, bb.jpg .... zz.jpg.У меня также есть таблица, которая содержит имена aa, bb ... zz как отдельные записи.

Теперь у меня вопрос, как мне вставить эти изображения в БД без использования форм вручную.Есть множество учебных пособий по Yii для ручной вставки, но ни одна не объясняет, как сделать это программно.

В принципе мне нужен способ использовать функцию lo_import в Yii.Дело в том, что image - это столбец в таблице, типом которого является OID, и мой код вставки в Yii выглядит следующим образом

update('table_name', array(
                'image' => "lo_import('$image_path')",
                    ), 'column=:name', array(':name' => $name));

. При выполнении этого я получаю следующую ошибку

CDbCommand не удалось выполнить инструкцию SQL: SQLSTATE [22P02]: недопустимое текстовое представление: 7 ОШИБКА: неверный синтаксис ввода для типа oid:

Решение: Хорошо, поэтому после ответа @ Uday я простоЯ использовал функцию в Yii для непосредственного выполнения операторов sql.

Yii::app()->db->createCommand($Update_sql_command)->query();

У меня все есть, если есть лучший способ сделать это.Спасибо!

1 Ответ

0 голосов
/ 07 февраля 2012

Тебе действительно нужен Yii для этого?Напишите функцию для перебора всех изображений, используйте get_file_contents(), чтобы получить содержимое и сохранить его в mysql.

$imgContents = get_file_contents('file.Name') ;
$sql = 'insert into table_name (blob_column) values("'. $imgContents.'")';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...