execute()
语句是否执行隐式fetch()
?PHP不会在以下简单代码中显示返回结果的第一行:
$query = 'CALL `MySP`()';
$stmt = $db->prepare($query);
$stmt->execute();
$rows = $stmt->fetchAll();
return $rows;
$rows
只包含3行,而不是实际的4行;缺少第一行。同一SP在直接运行时返回4行。
编辑
在我尝试了评论中提出的所有建议后,我还没有找到答案。此外,我发现PDO对于非常简单的SP也可能失败。下面是一个示例:
CREATE PROCEDURE `Test`()
BEGIN
SELECT 123 as Col1
UNION ALL
SELECT 456 as Col1;
END
尝试从PHP调用此proc。当你尝试抓取时,PDO抛出一个“无线索”异常:
PDO错误:“SQLSTATEHY000: General error”...
https://stackoverflow.com/questions/51506155
复制相似问题