在不使用表单的情况下在Yii中插入blob对象
问题描述:
我需要一种不使用表单的方式将图像插入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();
如果还有更好的方法可以做到这一点, 谢谢!
答
你真的需要Yii吗?编写一个函数遍历所有使用get_file_contents()
的图像来获取内容并将其存储到mysql中。
$imgContents = get_file_contents('file.Name') ;
$sql = 'insert into table_name (blob_column) values("'. $imgContents.'")';
我得到了那部分,我只是试图找出是否有任何我可以在Yii做到这一点。 PS:我已经编辑了一些我的问题。 – 2012-02-07 08:16:58
好的,我现在已经标记为正确答案,因为它至少引导我回答问题。但我不知道这个解决方案是否正确。不管怎么说,多谢拉! – 2012-02-07 08:35:21