SQL Server 정수 데이터 형식의 경우 PDO_SQLSRV는 문자열을 반환하지만 SQLSRV는 정수를 반환합니다. 필자가 이미 작성한 응용 프로그램은 여러 위치에서 명시적인 검사 (===)를 수행하므로 PDO_SQLSRV는 SQLSRV를 대체하지 않습니다. 일반적으로 내가 PDO를 고려되지 않을 것이다 - 그러나 교리는 PDO를 사용하는 것 그것을 위해 나는 마이크로 소프트 SQLSRV 드라이버를 찾을 수 없습니다 여기 PDO_SQLSRV는 모든 결과를 문자열로 반환합니다.
가 응답하여 샘플 코드입니다 : (제발 계몽!)PDO
$sql = "SELECT Top 1 * FROM Users";
$stmt = $conn->query($sql);
$things = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($things);
데이터 :
'ID' => string '344' (length=3)
'UserName' => string 'admin ' (length=30)
SQLSRV
$sql = "SELECT Top 1 * FROM Users";
$things = sqlsrv_query($conn, $sql);
$thingsArray = [];
while($row = sqlsrv_fetch_array($things, SQLSRV_FETCH_ASSOC))
{
$thingsArray[] = $row;
}
var_dump($thingsArray);
데이터 :
'ID' => int 344
'UserName' => string 'admin ' (length=30)
그래서
- 지금 나는 두 가지 선택이 있다고 생각 : 신중을 해제하고 내가 정수를 타입 캐스팅이나 내 비교를 풀어, 또는 쓰기있어 있는지 확인하십시오가 /를 찾을 수 Doctrine SQLSRV 라이브러리.정수를 정수로 반환하는 PDO_SQLSRV에 대한 설정을 알고있는 사람이 있습니까? 문서를 확인했지만 아무것도 찾을 수없는 것 같습니다.
또한 SQLSRV는 날짜를 네이티브 PHP DateTime 개체로 반환합니다. 쿨하지만 중요한 것은 아닙니다.
재미 있습니다. 내 검색에서 나는 MySQL과 관련하여 SO에 대한 답을 찾고 PDO를 통해 정수를 반환했다. 연결을 만들 때 설정 한 플래그가 있습니다. 그것의 이름을 기억할 수 없다 - 그러나 그것을 시도하고 그것은 작동하지 않았다. – MikeMurko