SQLSRV와 PDO_SQLSRV는 모두 current-generation php drivers available from Microsoft입니다.하지만 SQL Server Native Client 11에서는 동일한 코드가 사용됩니다. (Mac OS 또는 Linux 버전의 PHP 드라이버가없는 이유입니다. 두 패키지의 성능입니다.) 드라이버는 비슷해야합니다. 그것은 당신이 선호하는 API의 문제 일뿐입니다.
대부분의 경우 플랫폼 간 고려 사항 때문에 PDO_SQLSRV 드라이버를 사용합니다. 그러나 PDO_SQLSRV가 모든 것을 문자열로 반환하는 반면 기본 SQL Server 데이터 유형의 [맵]으로 데이터를 반환하기 때문에 새로운 (소) 프로젝트 용 두 드라이버를 살펴본 후 SQLSRV 드라이버와 함께갔습니다.
그래서 당신의 SQL 인 경우 :
는
SELECT 1234 as integer, Cast(123.456 as float) as float,
getdate() as date, '1234' as string1,'123.456' as string2;
그런 다음 PDO_SQLSRV에서 행 위해서 var_dump는 제공하십시오 SQLSRV 드라이버가 제공
array(1) {
[0] =>
array(5) {
'integer' =>
string(4) "1234"
'float' =>
string(7) "123.456"
'date' =>
string(23) "2012-12-06 22:35:05.373"
'string1' =>
string(4) "1234"
'string2' =>
string(7) "123.456"
}
}
동안 : 그것은 나에게 견과류를 몰고
array(1) {
[0] =>
array(5) {
'integer' =>
int(1234)
'float' =>
double(123.456)
'date' =>
class DateTime#1 (3) {
...
}
'string1' =>
string(4) "1234"
'string2' =>
string(7) "123.456"
}
}
PDO_SQLSRV는 내가 원하는지 여부에 관계없이 모든 데이터를 문자열로 변환하므로 SQLSRV를 사용했습니다. (나는 ReturnDatesAsStrings=true
을 설정해야한다는 것을 인정해야한다. 왜냐하면 나는 데이트 클래스를 다루기에는 너무 게으르다.)
나는 조금 더 나은 문법을 좋아하지만 그것은 나 뿐이다.