Yii强制Oracle中的小写列名

时间:2014-11-26 12:14:14

标签: php oracle yii pdo

我找到它并写在这里,如果它对某人有用。默认情况下,Yii框架使用PDO,pdo以大写形式提供oracle列名。要强制以小写形式返回它们,必须创建自定义连接并设置PDO属性,如:

class COraConnection extends CDbConnection
{
        protected function initConnection($pdo)
        {
                parent::initConnection($pdo);
                $pdo->setAttribute(PDO::ATTR_CASE,PDO::CASE_LOWER);
      ...             
        }
}

1 个答案:

答案 0 :(得分:2)

我检查过,U可以直接在你的数据库上设置它,而不创建自定义CDbConnection。 说你的main.php中的oracle连接名是

'dbora' => array(
     'class' => 'CDbConnection',
        'connectionString' => 'oci:dbname=192.168.0.1:1521/shop;charset=CL8MSWIN1251',
        'username' => 'dbuser',
        'password' => 'dbpwd',
      ),

只需将它写在你需要的地方:

$db = Yii::app()->dbora;
$db->setAttribute(PDO::ATTR_CASE,PDO::CASE_LOWER);