我正在使用 MySQL 中的存储过程来检索一些信息。
CREATE PROCEDURE UpdateAndSelect()
BEGIN
Update Buddy set Buddy.winner = true, Partner.number = @number := Partner.number
WHERE Buddy.winner is false
ORDER BY RAND()
LIMIT 1;
SELECT p.number, Buddy.email
FROM sorteo
INNER JOIN Partner p on Buddy.id_buddy= p.id
WHERE number= @number
LIMIT 1;
END;
数据返回一个仅包含号码和电子邮件的选择。
但是,当我在 CodeIgniter 3 中执行调用时,结果始终为 NULL。
现在我就是这样做的。
function getData(){
$result = $this->db->query("CALL UpdateAndSelect()");
if ($result->num_rows() == 1) {
return $result->result();
} else {
return false;
}
}
请有人知道我如何获取从 StoredProcedure 获得的数据。
最佳答案
更新子句中的Partner.number
逻辑是什么?查询中没有声明Partner.number
表。这将导致错误。
尝试从 MySQL 命令行运行该命令,以便可以看到所有错误。
关于php - Codeigniter-3 调用存储过程返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59022937/