2014-12-21 3 views
0

012do_dblib 및 freetds보다 MSSQL을 사용하는 프로젝트가 있습니다.SQL 서버 스칼라 함수의 "계산 된"키

array(1) { [0]=> array(1) { [""]=> string(3) "922" } }. 

그래서 배열의 키를 계산 "빈되었다 대신 : 형식이 갑자기 서버 중 하나에, 지금

array(1) { [0]=> array(1) { ["computed"]=> string(3) "922" } }. 

그러나 : MS 스칼라 함수는 항상이 형식으로 데이터를 반환 ".

"as"절을 추가하여 select 문에서 해당 키를 변경할 수 있음을 알고 있습니다. 그래도 문제는 기본 키를 제어하는 ​​것입니다.

두 서버 모두 동일한 데이터베이스를 사용합니다.

내가 아는 한,이 "계산 된"키는 pdo_dblib에 의해 추가 된 것입니다.

PHP 버전은 서버마다 다르지만 계산 된 버전은 이전 5.3이고 빈 키가있는 버전은 5.5입니다. 그러나 계산 된 키가 어제 사라진 동안이 서버는 꽤 오랜 동안 5.5를 가졌다 고 생각합니다. 그래도 100 % 확신하지 못했습니다.

답변

0

결국 this commit to pdo_dblib에 변경 사항이 있었기 때문에이 문제가 발생한다는 것을 알았습니다. 이 변화의 동기는 그것이 기억을 막히게하는 것이었다.

버전 that you get from pecl은 이상한 점에 유의해야합니다. dblib_stmt.c 소스에서 "계산"되었지만 여전히 사용하지는 않습니다.

작동하는 버전은 PHP 소스와 함께 번들로 제공되는 버전입니다. 소스를 PHP 5.3.29 \ ext \ pdo_dblib \에서 가져 와서 5.6.4와 비교해 빌드 할 수있었습니다.