標籤:
今天嘗試在 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 無法自動產生模型,總是提示指定的表不存在。即使人工編輯模型子類也無法執行資料查詢。
使用 PHP 架構 Yii 訪問 MS SQL 的嘗試