John888 2013-05-27 12:20:28 3814次浏览 0条回复 0 0 0

如题。

$connection=Yii::app()->db2;
$connection->active=true;
$sql="select * from BL_class";
$command=$connection->createCommand($sql);
$dataReader=$command->query();
$rows=$dataReader->readAll();
foreach($rows as $row){
	print_r($row);
}
$connection->active=false;

直接这样查询没有任何问题,是正常的。 但是用gii生成的时候,就出错。 经过我的研究之后发现,gii错误的判断了数据库的类型。gii的数据库查询语句用的mysql的。如下:

PDOStatement Object ( [queryString] => SELECT TABLE_NAME, TABLE_SCHEMA FROM [INFORMATION_SCHEMA].[TABLES] WHERE TABLE_SCHEMA=:schema AND TABLE_TYPE in ('BASE TABLE','VIEW') ) 

这明显是mysql的语句。mysql中才有这表[INFORMATION_SCHEMA].[TABLES]。 我的连接字符串是这样的。

'db2'=>array(
    'class' => 'CDbConnection',
    'connectionString' => 'mssql:host=保密ip,保密端口;dbname=保密数据库名',
    'username' => '保密账号',
    'password' => '保密密码',
),

请问,是什么原因?怎么解决?代码生成器的查询这一块的代码在哪里?

    没有找到数据。
您需要登录后才可以回复。登录 | 立即注册