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

标签 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;

数据返回一个仅包含号码和电子邮件的选择。

但是,当我在 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

最佳答案

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

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

关于php - Codeigniter-3 调用存储过程返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59022937/

相关文章:

php - Vim PHP 全能补全

mysql - SELECT 和 INSERT 的 OPENQUERY 有何不同?

PHP,将 CSV 从外部源插入 MySQL DB

javascript - 我想将日期格式更改为 "yyyy-mm-dd"

php - 如何在连接表中搜索?

php - Codeigniter:加载 View 后更改 URL

php - 防止使用 .htaccess 直接访问公用文件夹中的文件夹不起作用

php - 动态Javascript文件换行符和回车符

PHP 未使用 AFNetworking 从我的 iPhone 模拟器接收发布数据

mysql - 制作另一个MySQL的一个表列的行名