php - Codeigniter 不稳定的 Active Record 结果

标签 php mysql codeigniter activerecord

我用 Codeigniter 的 Active Record 做了一个简单的选择查询,但不知何故它与我真正的 MySQL 记录有不同的结果。

MyModel.php

class MyModel extends CI_Model {
    public function get_pending_requests($admin_id) {
        $this->db->from('assignment');
        $this->db->where('admin_id', $admin_id);
        $this->db->where('requested IS NOT NULL');
        $this->db->where('approved IS NULL');
        $this->db->where('declined IS NULL');

        $result = $this->db->get()->result();

        var_dump($result);
        var_dump($this->db->last_query());

        return $result;
    }
}

我可以向你保证,无论我运行该代码多少次,它总是返回相同的查询:

string 'SELECT *
FROM (`assignment`)
WHERE `admin_id` =  '1'
AND `requested` IS NOT NULL
AND `approved` IS NULL
AND `declined` IS NULL' (length=126)

然而,对于完全相同的查询,它会返回不同的结果。

有时它会返回正确的结果,即 null(因为赋值表中没有记录)。

但在其他时候,它会返回一条已经删除的记录。

object(stdClass)[36]
      public 'id' => string '14' (length=2)

有一条id为14的记录,但已经被删除了一段时间。

需要提示。

最佳答案

我锻炼了。

好像和mysql长连接有关

一旦我添加了这个

$db['default']['pconnect'] = FALSE;

一切都重新开始了。

关于php - Codeigniter 不稳定的 Active Record 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25503215/

相关文章:

javascript - Chrome 提交表单后未从 ajax 加载 View

php - 使用 'type' 列识别表的行

MySQL - 生成的行号不连续

php - MySql:保存日期范围与保存单日

php - mySQL 查询在 PHPmyAdmin 中工作,但在 PHP 文件中不起作用

php - 有用的 IMAP header 信息未显示

Java + MySQL - 更新时覆盖行

php - 更新到数据库时,Codeigniter 中的 Crud 不受影响

php - 如何检查输入数据中是否出现字符串

php - 存储在表中,Laravel