2012-02-07 20 views
1

我需要一種不使用表單的方式將圖像插入PostgreSQL數據庫。我有一個文件夾,其中包含一組名爲say aa.jpg,bb.jpg .... zz.jpg的圖像。我也有一張表,其中包含名稱aa,bb ... zz作爲單獨記錄。在不使用表單的情況下在Yii中插入blob對象

現在我的問題是如何將這些圖像插入數據庫,而無需手動使用表單。手動插入有大量Yii tutorials,但沒有解釋如何以編程方式執行。

基本上我需要一種方法來在Yii中使用lo_import函數。問題是,圖像是類型爲OID和Yii中我插入的代碼是在執行此如下

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

表中的列,它給了我下面的錯誤

CDbCommand failed to execute the SQL statement: SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for type oid:

解決方案:好的,在@ Uday的回答中,我只是使用Yii中的函數直接執行sql語句。

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

如果還有更好的方法可以做到這一點, 謝謝!

回答

0

你真的需要Yii嗎?編寫一個函數遍歷所有使用get_file_contents()的圖像來獲取內容並將其存儲到mysql中。

$imgContents = get_file_contents('file.Name') ; 
$sql = 'insert into table_name (blob_column) values("'. $imgContents.'")'; 
+0

我得到了那部分,我只是試圖找出是否有任何我可以在Yii做到這一點。 PS:我已經編輯了一些我的問題。 – 2012-02-07 08:16:58

+0

好的,我現在已經標記爲正確答案,因爲它至少引導我回答問題。但我不知道這個解決方案是否正確。不管怎麼說,多謝拉! – 2012-02-07 08:35:21

相關問題