与Mysql phpmyadmin相比,Codeigntier中的查询结果不同

时间:2017-11-10 07:22:52

标签: php mysql codeigniter phpmyadmin codeigniter-3

今天我遇到了一个基于循环迭代创建动态查询的问题。下面是我的代码。

我的模特

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模型函数时,它只返回一条记录。

PHPMYADMIN SCREENSHOT - 正确结果 Getting correct results here Plz帮帮我!提前谢谢..

打印结果后,我只有 enter image description here

3 个答案:

答案 0 :(得分:1)

您的数据库表(模块)有问题。在 模块表 中将值更改为 10 + 2 Math ,然后结果将按预期显示。

由于这两个表的价值不匹配,你没有得到价值。

模块表为 10 + 2 Math (它有两个空格)

在multi_bind_question表中,它存储为 10 + 2 Math (它有一个空格)

您的代码中没有错误...

希望它会;解决你的问题

答案 1 :(得分:0)

试试这个!

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_array()); 
 }
 else{
    echo "Only One ";
 }
}

答案 2 :(得分:0)

在我看来,如果您的查询是正确的,那么您应该至少尝试一下:

add(SecondFragment)