Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/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
Database CodeIgniter SQLite,其中字段处于阵列状态_Database_Sqlite_Codeigniter_Pdo_Where - Fatal编程技术网

Database CodeIgniter SQLite,其中字段处于阵列状态

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."')";

我在尝试使用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."')";
在我的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'以不同的方式修复了它,创建以普通字符串格式而不是数组格式设置的自定义重写查询