내 문제는 기본적으로 PHP의 sqlsrv를 사용하여 SQL Server 2000 데이터베이스에 액세스해야하는 것을 선호하거나 저의 주위를 돌고 있습니다. 나는 프로젝트를 이미 SQL Server 2005에서 사용하여 모든 쿼리를 실행하고 ODBC PHP 드라이버와 같은 것으로 전환하는 작업은 꽤 큰 두통이 될 것입니다. 이제는 원래의 SQL Server 2000 데이터베이스와 2005가 동일한 컴퓨터에 설치되어 있고 그 사이에 연결된 서버를 만들었습니다. 2. Management Studio Express에서 테스트 할 때 테이블 중 하나에 간단한 쿼리를 실행하여 작업했습니다.연결된 서버가있는 SQLSRV
이제 sqlsrv_query를 사용하고 오류가 발생하여 PHP에서 똑같은 쿼리를 사용하고 있습니다. 이 코드이
$connectionOptions = array("UID"=>"user","PWD"=>"password");
$res = sqlsrv_connect("(local)\SQLExpress", $connectionOptions);
if(!$res) die("ERRORS : " . print_r(sqlsrv_errors()));
echo "SELECT * FROM [ServerName].DB.dbo.Table<br/>";
$res = sqlsrv_query($res,"SELECT * FROM [ServerName].DB.dbo.Table");
if($res===false){
die("ERRORS : " . print_r(sqlsrv_errors()));
}else{
var_dump($res);
$ary = sqlsrv_fetch_array($res);
}
var_dump($ary);
echo "<hr>";
var_dump(sqlsrv_errors());
문제는 sqlsrv_query의 결과가 false를 반환하지 않는다는 것입니다하지만 알 수없는 유형의 자원 (11)를 반환처럼이를 테스트하기 위해 내 PHP 코드 보인다. 결과에서 fetch_array를 실행하면 잘못된 매개 변수가 sqlsrv_fetch_array로 전달되었음을 알 수 있습니다. 이 시점에서 무엇을해야할지 모르겠습니다. sqlsrv를 통해 연결된 서버에서 쿼리를 실행하는 데 문제가 있습니까?
필자는 PHP에 매우 익숙하지 않지만, 테이블의 스키마를 보면 문제를 일으킬 수있는 비정상적인 필드를 표시하는 데 도움이 될 수 있습니다. 필드 유형이 잘못되어 있는지 궁금해하고 있습니다. DB에서 코드까지 ... –