简体   繁体   中英

Codeigniter $query->result() returns strange results

This peace of code is driving me crazy for last hour... I have this model which should return all non active records from DB

    $query = $this->db->get($tableName);
    echo $this->db->last_query();
    var_dump($query->result());

$this->db->last_query() output is

SELECT * FROM `locations` LEFT JOIN `provinces` ON `provinces`.`id_province` = `locations`.`id_province` LEFT JOIN `countries` ON `countries`.`id_country` = `provinces`.`id_country` LEFT JOIN `statuses` ON `statuses`.`id_status` = `locations`.`id_status` WHERE `locations`.`active` = '0' ORDER BY `locations`.`id_location` DESC LIMIT 50

If i run exactsame query in phpmyadmin i get correct results

在此处输入图片说明

But when i var_dump data var_dump($query->result()); i get the following results

array (size=50)
  0 => 
    object(stdClass)[61]
      public 'unique_id' => string 'OWYwYjBmNm' (length=10)
      public 'active' => string '1' (length=1)
      public 'owner_name' => string 'Cleve Greenfelder' (length=17)
  1 => 
    object(stdClass)[62]
      public 'unique_id' => string 'YWY4YmMzMm' (length=10)
      public 'active' => string '1' (length=1)
      public 'owner_name' => string 'Bradford Hyatt' (length=14)

Why/how this active state get's overwritten from 0 to 1? IF you need any additional information's, please let me know and i will provide. Thank you!

Once i wrote a question, answer quickly appeared in my head :) Table Countries has also active field, so this field overwrites active state as enabled. I needed to specified fields and there's name in query in order to get proper results

$fields = 'unique_id, locations.active as active, ....';

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM