今天尝试在 Wamp 环境下访问 MS SQL 数据库,有以下心得。使用 PHP 5.3 + pdo_odbc + Yii 1.1 框架,以下两个代码段可以成功。

1、直接使用 PDO 方式,可以获取数据。

1 $sql = "SELECT TOP 10 [NAME],[STCD],[TM],[PA] FROM AT_PA";
2 $cnx = new PDO("odbc:Driver={SQL Server};Server=10.5.1.47;Database=mydb;",'username','pass');
3 var_dump($cnx);
4 $rs = $cnx->query($sql);
5 var_dump($rs);
6 foreach ($rs as $b) {
7 var_dump($b);
8 }

2、如果在配置文件中对 db 属性进行配置,可以使用 CDbCommand 类查询数据。

//配置代码
return array('components' => array(
    'db' => 
    array (
      'driverName'=>'mssql',
      'connectionString' => 'odbc:Driver={SQL Server};Server=127.0.0.1;Database=mydatabase;',
      'username' => 'username',
      'password' => 'pass',
    ),
));

//查询代码
$sql = "SELECT TOP 10 [NAME],[STCD],[TM],[PA] FROM AT_PA";
$rs = Yii::app()->db->createCommand($sql)->queryAll();
var_dump($rs);
foreach ($rs as $b) {
  var_dump($b);
}

3、最激动人心的一步,使用 CActiveRecord,失败了。

如果查询所有表的名称,

$rs = Yii::app()->dbHuaiWater->schema->tableNames;

可以得到所有的数据表的名称。但是 Gii 无法自动生成模型,总是提示指定的表不存在。即使人工编辑模型子类也无法执行数据查询。

 

posted on 2015-07-25 22:09  冰桃  阅读(156)  评论(0编辑  收藏  举报