2014-11-13 4 views
0

Я пытаюсь получить некоторые данные на основе условия WHERE из XML-файла, но проблема в том, что по запросу условие foreach возвращает, что столбец VALUE не существует.Get where from Codeigniter return Неизвестный столбец

XML файл:

<?xml version="1.0" encoding="UTF-8"?> 
<COUNTRY> 
    <STATE city="NewYork" available="1"/> 
    <STATE city="NewJersey" available="1"/> 
</COUNTRY> 

Контроллер:

public function getIdFromCity($city){ 

     $this->db->select('entity_id'); 
     $this->db->where('city', $city); 
     $query = $this->db->get('cities'); 
     return $query->result_array(); 

    } 


     $count = 1; 
     foreach ($xml->STATE as $state){ 
      $data  = array(); 
      $data[0] = $state->attributes()->city; 
      $data[1] = $state->attributes()->available; 

      if($this->getIdFromCity($data[0])){ 
       echo '<pre>'; 
       print_r($this->getIdFromCity($data[0])); 
      } 
     $count++; 
     } 

вопрос си, как я могу получить данные из базы данных городов, базирующиеся в состоянии данных XML?

Ошибка:

Error Number: 1054 

Unknown column 'NewYork' in 'where clause' 

SELECT `entity_id` FROM (`cities`) WHERE `city` = NewYork 

Filename: codeigniter\system\database\DB_driver.php 

Line Number: 330 

ответ

0

Ваш запрос производит город = Newyork
Но это должно быть город = "Newyork"
Заменить строку $this->db->where('city', $city); с

$this->db->where("city = '".$city."'"); 

или

$this->db->where("city = '$city'"); 

Убедитесь, что пространство до и после знака "="

0

Repalce этой линии

$this->db->where('city', $city); 

с

$this->db->where('city', $city, TRUE); 
+0

Я решил добавив (строку) – Dario

+2

'TRUE, является третьим по умолчанию параметр. так что это не повлияет. –