gpt4 book ai didi

php - MySQL存储过程仅返回一个选择查询

转载 作者:行者123 更新时间:2023-11-29 21:38:26 25 4
gpt4 key购买 nike

我有以下存储过程:

CREATE PROCEDURE `Get_Events_And_Deadlines_By_User`(IN `intervalStart` INT, IN `intervalEnd` INT)
BEGIN
IF (intervalStart != 0 AND intervalEnd != 0) THEN
SELECT 1 AS `test`;
ELSEIF (intervalStart != 0 AND intervalEnd = 0) THEN
BEGIN
SELECT 2 AS `test`;
IF ((SELECT FOUND_ROWS())=1) THEN
SELECT 3 AS `test`;
END IF;
END;
ELSE
SELECT 4 AS `test`;
END IF;
END

当我运行 call Get_Events_And_Deadlines_By_User(1,0) 时,我只得到结果为 2 的选择查询,if 语句中的选择永远不会返回。在返回存储过程之前,似乎只执行遇到的第一个选择查询。为什么是这样?我可以做什么来解决这个问题?我希望 if 语句内的选择查询成为 if 成立时的唯一结果。

最佳答案

您的过程返回多个结果集。
PDO:

<?php
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'localonly', 'localonly', array(
PDO::ATTR_EMULATE_PREPARES=>false,
PDO::MYSQL_ATTR_DIRECT_QUERY=>false,
PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION
));

$result = $pdo->query('Call Get_Events_And_Deadlines_By_User(1,0)');
do {
foreach( $result as $row ) {
echo join(', ', $row), "\r\n";
}
echo "-----\r\n";
} while($result->nextRowset());

关于php - MySQL存储过程仅返回一个选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34729229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com