Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codeigniter查询绑定具有相同值的多个字段_Codeigniter - Fatal编程技术网

Codeigniter查询绑定具有相同值的多个字段

Codeigniter查询绑定具有相同值的多个字段,codeigniter,Codeigniter,我正在使用Codeigniter进行MySQL查询,并且有很多字段都是相同的值请求 例如: $this->db->query('SELECT * FROM abc WHERE user_id = ? AND msg_from = ? AND msg_to != ?', [$id, $id, $id]); 这只有3个问号,但我正在处理的查询非常庞大,有19个问号,它们都是相同的变量 所以我想知道如何告诉Codeigniter所有的问号都指向同一个变量,而不必用同一个变量的19倍填充数

我正在使用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循环,但我想知道是否存在快捷方式。

使用Codeigniters查询生成器,您应该能够非常轻松地完成此操作

类似的方法应该会奏效:

$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->select
db->where
等等),我需要使用
db->query()
,有什么原因吗?因为我无法想象在任何情况下,除了一些非常困难的聚合函数外,我在构建器上都会遇到问题——不过,如果你不想用querybuilder来实现这一点,我想你必须自己来完成吗?;)