我尝试在 PHP 5.4.4 (Linux) 中使用 PDO DBLIB 一个接一个地调用 3 个 SQL Server 2000 存储过程,并且在第二个查询中出现错误:致命错误:调用非成员函数 fetchAll()目的
第一个查询完美运行,按预期返回结果。如果我移动查询顺序,每次第一个查询成功而其他查询失败。
此外,当完全相同的代码在 PHP 5.3.14 服务器上运行时,一切正常。
示例代码:
$dbh = new PDO ("dblib:host=myhost;dbname=mydb","user","pass");
$query = $dbh->query("EXEC dbo.storedProc1 'param1'");
$result = $query->fetchAll();
var_dump($result);
$query = $dbh->query("EXEC dbo.storedProc2 'param1'");
$result = $query->fetchAll(); // <-- Fails here
var_dump($result);
$query = $dbh->query("EXEC dbo.storedProc3 'param1'");
$result = $query->fetchAll();
var_dump($result);
有什么线索可以让这段代码在 PHP 5.4 上运行吗?
编辑: PDO::errorInfo 给了我这个错误:Attempt to initiate a new Adaptive Server operation with results pending [20019] (severity 7) [EXEC dbo.storedProc2 'param1']
此外,使用 SELECT 调用query
(例如 SELECT 1、SELECT 3 和 SELECT 3)给出相同的结果(给出第一个结果,以下为空)
编辑 2:看起来它与PHP 错误有关,正如 Capilé 在评论中注意到的那样