2011-08-03 5 views
1

Cake 1.3 사이트에서 ADO가 더 이상 지원되지 않으므로 Cake PHP 사이트를 업그레이드하고 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()에 전달 된 연결 리소스로 간주되며 잘못되었다는 부울입니다 (변수를 에코하려고 시도했지만 아무 것도 표시하지 않음). 특정 방법은

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

이러한 매개 변수의 각이 정확이

이 나에게주는

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

가 전달 된 변수를 인쇄 :

이 연결이 설정되어야한다 곳이다 이 드라이버에 대한 데이터베이스 구성 배열을 포맷하거나 변경해야합니까, 아니면 누락 된 부분이 있습니까?

답변

2

이 오류처럼 $param해야 뭔가 오래된 SQL 서버 드라이버 때문이었다. 아래에서 최신 설치하는 것은 SQL Server 연결을 할 수 있습니다 :

는하지만, 내가 구성 아니에요 포트 정보를 뭐하는거야하지만 잘되는 기본 포트를 사용하여 정확히 무엇

http://www.microsoft.com/download/en/details.aspx?id=20098

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 인 연결이

있어야한다고 생각합니다.

그리고이

$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

관련 문제