【问题标题】:Codeigniter Query binding multiple fields with the same valueCodeigniter 查询绑定具有相同值的多个字段
【发布时间】:2018-04-25 10:50:38
【问题描述】:

我正在使用 Codeigniter 进行 MySQL 查询,并且我有很多字段值请求都是相同的。

例子:

$this->db->query('SELECT * FROM abc WHERE user_id = ? AND msg_from = ? AND msg_to != ?', [$id, $id, $id]);

这只有 3 个问号,但我正在处理的查询是巨大的,有 19 个问号,它们都是相同的变量。

所以我试图弄清楚如何告诉 Codeigniter 所有问号都指向同一个变量,而不必用相同变量的 19 倍填充数组。

我想到了一个 for 循环,但我想知道是否存在快捷方式。

【问题讨论】:

    标签: codeigniter


    【解决方案1】:

    您应该可以使用 Codeigniters Query Builder 轻松完成此操作

    类似的东西应该可以工作:

    $this->db
        ->select('*')
        ->from('abc');
    
    $arrFields = array('users_id', 'msg_from', 'msg_to');
    
    foreach($arrFields AS $val)
    {
        $this->db->where($val, $id);
    }
    
    $query = $this->db->get();
    

    【讨论】:

    • 好的,但我的查询有 19 个字段,因为它很复杂,我不会使用内置 CI 函数(db->selectdb->where 等)我需要使用 db->query()
    • 有什么理由吗?因为我无法想象除了一些非常困难的聚合函数之外我在使用 Builder 时遇到问题的单一情况 - 但是,如果您不想使用 querybuilder 执行此操作,我猜您必须自己执行此操作? ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 2021-08-14
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多