【发布时间】:2016-05-11 11:33:02
【问题描述】:
我创建了一个过程(使用 PHPMyAdmin 工具),它返回一个表和两个输出。如果我使用 PHPMyAdmin 的“执行”按钮执行该过程,它会发送此查询:
SET @p0 = '12';
SET @p1 = '1';
CALL `getPhoneReview` (@p0 , @p1 , @p2 , @p3);
SELECT @p2 AS `PhoneCount` , @p3 AS `ReviewCount`;
返回预期的内容(表格和两个输出)。但是,如果我复制该确切代码并从 SQL 部分执行,它只会执行最后一句:
CALL `getPhoneReview` (@p0 , @p1 , @p2 , @p3)
什么都不返回。
尝试使用 PHP 检索输出值时也会发生这种情况。我有这个代码:
$C = new MySQLi(...);
$Q = $C->query("CALL getPhoneReview(12, 1, @PhoneCount, @ReviewCount)");
/* Looping over $Q works fine */
$PhoneCount = $C->query("SELECT @PhoneCount AS PhC");
$PCO = $PhoneCount->fetch_object();
var_dump($PCO->PhC); /* Call to a member function fetch_object() on boolean */
有人可以帮我吗?
【问题讨论】:
标签: php stored-procedures mysqli