【发布时间】:2018-04-23 09:04:30
【问题描述】:
今天我面临一个基于循环迭代创建动态查询的问题。下面是我的代码。
我的模特
public function get_chapters_from_subject(){
if(COUNT($_REQUEST['subjects']) > 1){
$this->db->where_in('question_modules', $_REQUEST['subjects']);
$y = $this->db->get($this->db->dbprefix('multi_bind_question'));
print_r($this->db->last_query());
print_r($y->result());
}
else{
echo "Only One ";
}
}
在得到不同的结果后,我通过打印由 codeigniter 生成的查询来检查它。没事。查询如下
打印后生成的查询,看起来像
SELECT * FROM `app_multi_bind_question` WHERE `question_modules` IN('10+1 Math', '10+2 Math')
结果问题
如果我在 mysql/phpmyadmin 上运行相同的查询,则它返回 3 行(更正结果)。但是当我在上面提到的codeigniter模型函数中打印查询返回的结果时,它只返回一条记录。
【问题讨论】:
-
您可以通过
$this->db->where_in('question_modules', $_REQUEST['subjects']);使您的代码更具可读性您的问题是什么,我似乎是如果您通过 CI 和 phpadmin 询问不同的数据库或表 -
@splash,它是同一张表..请检查我在打印结果后得到的查询..当我在 phpmyadmin 上运行它时,它会给我正确的结果,但是当我通过代码运行它时上面,它返回不同的结果。
-
echo count($y->result()); -
它说只有1条记录,但正确的结果应该是3..数据库中有3条记录,打印查询后,查询看起来像: - SELECT * FROM
app_multi_bind_questionWHEREquestion_modulesIN ('10+1 数学', '10+2 数学') -
phpmyadmin 与任何 php 库的 mysql 进程接口相同,CI 正在使用(例如 mysqli)。两者都只是发送文本查询并接收处理结果。我无法想象结果可以在哪里改变。区别应该是的。从问题中不清楚,但必须是:)
标签: php mysql codeigniter phpmyadmin codeigniter-3