2011-08-03 19 views
1

ケーキPHPサイトをアップグレードし、ADOがCake 1.3、Iでサポートされなくなったため、データベースドライバをADOからSQL Serverの独自のドライバに変更する必要がありました。新しいSQL Serverドライバは、PHPにインストールされている、(のphpinfoに表示されます)と動作するはずですが、私はデータベースを使用してページをロードしようとすると、私はこのエラーを取得する:Cake PHP SQL Serverドライバを使用しているエラー

Warning (2): sqlsrv_query() expects parameter 1 to be resource, boolean given 
[APP\plugins\datasources\models\datasources\dbo\dbo_sqlsrv.php, line 184] 
Warning (512): SQL Error: An invalid parameter was passed to sqlsrv_query. 
[CORE\cake\libs\model\datasources\dbo_source.php, line 684] 
Query: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES 

起こっているように見える何か私ですdbo_sqlsrv.phpドライバに接続が確立されていません。 "$this->connection"という変数は、sqlsrv_query()に渡された接続リソースとみなされ、明らかにboolが間違っています(変数をエコーし​​ようとしましたが、何も表示しません)。

接続を設定するべきである場所です:

sqlsrv_connect($this->config['host'] . $port, $params) 

が渡された変数を印刷する私にこれを与える:これらのパラメータのそれぞれが正しい

SRV, 1433 Array ([Database] => DB [CharacterSet] => char 
[MultipleActiveResultSets] => [UID] => sa [PWD] => password) 

、具体的な方法があります私は、このドライバのデータベース構成アレイをフォーマットまたは変更する必要がありますか、または私が紛失しているものがありますか?

答えて

1

あなたの接続に問題があると思います。 PHPはSQL Serverとの接続を確立できません。

var $default = array(
     'driver' => 'sqlsrv', 
     'persistent' => false, 
     'host' => 'Myhome-PC\SQLEXPRESS', // or ip-address(192.168.1.13) 
     'login' => 'username', 
     'password' => 'password', 
     'database' => 'db', 
     'prefix' => 'tbl', 
     'port' => NULL, 
     'returnDatesAsStrings' => True 
    ); 

は、私がここで私が使用sqlsrv_dboでの接続は、この

されるべきだと思います。

そして、あなたの$paramはこのエラーこの

$connectionInfo = array("UID" => $config['login'], 
         "PWD" => $config['password'], 
         "Database" => $config['database'], 
         'MultipleActiveResultSets' => 1, 
         'ConnectionPooling' => 0 
); 
if(isset($config['ReturnDatesAsStrings'])){ 
     $connectionInfo['ReturnDatesAsStrings'] = $config['ReturnDatesAsStrings']; 
} 
$this->connection = sqlsrv_connect($config['host'] . $port, $connectionInfo); 
+0

それはしかしやっているまさにだ、私はポートの情報を設定していないよ、それは右である、デフォルトのポートを使用しています。あなたの最後のコードブロックは、sqlsrv.phpドライバファイルで起こっていることとほぼ同じです。 –

+0

あなたは単純なPHPからSQLサーバーに接続しようとしましたか? – RSK

+0

使用しているコードをいくつか追加できますか? – RSK

関連する問題