Database CodeIgniter SQLite,其中字段处于阵列状态
我在尝试使用SQLite在CodeIgniter中设置“WHERE field IN…”子句时遇到了一些问题。我得到了一个名为$conditions的所有where子句条件的数组,并以这种方式添加了where IN子句:Database CodeIgniter SQLite,其中字段处于阵列状态,database,sqlite,codeigniter,pdo,where,Database,Sqlite,Codeigniter,Pdo,Where,我在尝试使用SQLite在CodeIgniter中设置“WHERE field IN…”子句时遇到了一些问题。我得到了一个名为$conditions的所有where子句条件的数组,并以这种方式添加了where IN子句: $this->browse_model->conditions['username IN'] = "(SELECT like_to FROM likes WHERE like_from = '".$this->user->username."')";
$this->browse_model->conditions['username IN'] = "(SELECT like_to FROM likes WHERE like_from = '".$this->user->username."')";
在我的browse_模型中,我使用以下代码运行查询:
$get = $this->db->get_where('users', $this->conditions, 6, $_SESSION['browse_page']*6);
但不知怎的,当我使用上面写的条件时,它给了我以下错误:
致命错误:对中的非对象执行的成员函数的调用
../www/system/database/drivers/pdo/pdo_driver.php第193行
就我而言,SQLite中也允许使用“数组中的字段”语句,所以我真的不知道为什么这不起作用。有人知道怎么做吗
提前谢谢
问候,
斯凯夫
编辑:尝试按以下方式设置条件,但未得到错误,但未得到任何结果:
$this->browse_model->conditions['username'] = "IN (SELECT like_to FROM likes WHERE like_from = '".$this->user->username."')";
所以我想这仍然不是正确的方法
EDIT2:'Fixed'它,不知何故它没有解释字段=>value为IN语句正确表示where子句的方式,因此在自定义字符串中定义它:
$this->browse_model->custom_condition = username IN (SELECT like_to FROM likes WHERE like_from = '".$this->user->username."')
他们在子句中的格式有问题
SELECT * FROM users WHERE gender = 'f' AND gender_preference = 'm' AND username IN (SELECT like_to FROM likes WHERE like_from = 'testtest')
请确保,数据库加载器之前已加载?是的,数据库已加载,所有其他查询都有效,但不是我在帖子中提到的在数组中设置用户名的条件。然而,我只是尝试将IN语句放在值的内部,它没有给出错误,但也没有返回任何它应该返回的结果。。。所以仍然混淆打印最后一个查询,它是如何形成的{echo$this->db->last_query;exit;}刚刚完成,输出:SELECT*FROM users,其中gender='f'和gender_preference='m',username='IN SELECT like_to FROM like_FROM=test'以不同的方式修复了它,创建以普通字符串格式而不是数组格式设置的自定义重写查询