Yiiのオブジェクトには、CLOB列が1つ含まれているテーブルにマッピングされています。Yiiフレームワークでoracle 11gのCLOBを使用する方法
save()メソッドを使用して挿入する方法は〜54kのchar長の文字列を行に挿入する方法はありますか?
Yiiのオブジェクトには、CLOB列が1つ含まれているテーブルにマッピングされています。Yiiフレームワークでoracle 11gのCLOBを使用する方法
save()メソッドを使用して挿入する方法は〜54kのchar長の文字列を行に挿入する方法はありますか?
Yiiには、ActiveRecordモデルのbeforeSave()およびafterSave()イベントメソッドがあります。 save()メソッドをオーバーライドする代わりにそれらを使用します。必要なすべてのOracleメソッドをそこに配置します。基本的に:beforeSave()のフィールドをnullにし、afterSave()はOCIParse()などでDBに値を書き込みます。
ここでは、CakeのPHPフレームワークを使用した、非常に似ています(MVCと前後のSaveメソッド)。あなたは明らかYiiの、で動作するようにこのコードを変更する必要がありますが、それは正しい軌道に乗ってあなたを取得する必要があります:Yiiの最新バージョンが現在あまりにもクエリビルダを持って
http://nik.chankov.net/2008/01/03/cakephp-and-oracle-handling-clob-fields/
、いくつかのかもしれません
http://www.yiiframework.com/doc/guide/1.1/en/database.query-builder
幸運:あなたが書く必要がありますafterSave()コードのヘルプ!
私は今すぐそれを解決します。 また、Oracle 11gでBLOBを使用する必要があります。 イメージをoracle表に挿入したいとします。
私はそれをネット上ですべて検索し、最後にenter link description hereという解決策を見つけました。
をクリックしてください。
は私が私の代わりに
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
によって
$db = Yii::app()->db->getPdoInstance()
で$ DBを取得し、他のものはすべて同じである例#2
<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) values (?, ?, ?)");
$id = get_new_id(); // some function to allocate a new ID
// assume that we are running as part of a file upload form
// You can find more information in the PHP documentation
$fp = fopen($_FILES['file']['tmp_name'], 'rb');
$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);
$db->beginTransaction();
$stmt->execute();
$db->commit();
?>
に従ってください。
幸運を祈る!
私はPDOStatement :: bindValueをPDO :: PARAM_STRで使用し、length paramはafterSaveイベントでstringのstrlenで埋められました。これは今のところ動作します。とにかく感謝と+1 – canni