我有这个代码:
$dbh = new PDO('odbc:MSSQLServer', 'user', 'pass');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sth = $dbh->prepare($sql);
$sth->execute();
$result = $sth->fetch(PDO::FETCH_ASSOC);
var_dump($result);
如果:
$sql = "select seri_cdser from tsica_alun_matr";
输出是:
array(1) {
["seri_cdser"]=>
string(4) "3EMM"
}
但如果:
$sql = "select * from tsica_alun_matr";
输出是:
SQLSTATE[22003]: Numeric value out of range: 0 [Microsoft][SQL Server Native Client 11.0]Numeric value out of range (SQLFetchScroll[0] at /usr/local/src/PDO_ODBC/odbc_stmt.c:372)
有时也会返回一个空数组,显然驱动程序不稳定。
该表tsica_alun_matr
有 13 列。
有人知道这是否是 MS SQL Server 的 PDO 驱动程序的错误?