我在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;
数据返回一个带有数字和电子邮件的Select。
但是,当我在CodeIgniter 3中执行调用时,结果始终为NULL。
现在我正以这种方式这样做。
function getData(){
$result = $this->db->query("CALL UpdateAndSelect()");
if ($result->num_rows() == 1) {
return $result->result();
} else {
return false;
}
}
请任何人知道我如何获取从StoredProcedure获得的数据。
答案 0 :(得分:0)
update子句中的Partner.number
逻辑是什么?查询中没有声明表Partner.number
。这将导致错误。
尝试从MySQL命令行运行命令,以便可以看到所有错误。