2010-12-17 5 views
3

이전에 SQL Server 데이터베이스와 MySQL 데이터베이스에 연결하기 위해 PDO를 사용하는 데이터베이스 클래스를 작성했습니다. 그것은 항상 MySQL 데이터베이스에서 사용할 때 의문점을 대체했지만 SQL Server 데이터베이스의 경우 기본적으로 수동으로 물음표를 대체하는 작업을 만들어야했습니다. 여기에 대한 코드가 있습니다.PHP PDO SQL Server Select 문이 물음표를 대체하지 않음

if($this->getPDODriver() == 'odbc' && !empty($values_a) && substr_count($query_s, "?") > 0) { 
    $query_s = preg_replace(array_fill(0, substr_count($query_s, "?"), '/\?/'), $values_a, $query_s, 1); 
    $values_a = NULL; 
} 

지금, 나는이 완전히 물음표와 PDO의 목적을 패배 이해하지만 나를 위해 잘 작동하고있다. 그래도 지금하고 싶은 것은 물음표가 처음부터 대체되지 않는 이유를 찾아서이 해결 방법을 제거하는 것입니다.

나는 다음과 같은

쿼리 내가 그것을 준비로 이동합니다,하지만 난 쿼리 결과를 표시 할 때, 그것은 빈 배열 때 모습입니다
SELECT * FROM database WHERE value = ? 

같은 select 문이있는 경우.

이 클래스는 MySQL에서 잘 작동하고 있으며 위의 해결 방법으로도 잘 작동하고 있음을 기억하십시오. 그래서 물음표와 관련이 있다는 것을 압니다.

답변

0

정보가 충분하지 않습니다. SQL Server 프로파일 러를보고 pdo가 보낸 실제 쿼리를 예상과 비교하십시오.