Codeigniter-3调用存储过程返回null

时间:2019-11-24 22:10:59

标签: php mysql codeigniter

我在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获得的数据。

这是我从MySQL获得的结果集。注意:数字=数字 enter image description here

1 个答案:

答案 0 :(得分:0)

update子句中的Partner.number逻辑是什么?查询中没有声明表Partner.number。这将导致错误。

尝试从MySQL命令行运行命令,以便可以看到所有错误。