Проблема базы данных Codeigniter - PullRequest
1 голос
/ 15 октября 2010

Я немного пытаюсь извлечь некоторые данные из моей базы данных.

У меня есть следующая модель:

function GetRestaurants($options = array())
    {
        // Qualification
        if(isset($options['restaurantID']))
            $this->db->where('restaurantID', $options['restaurantID']);
        if(isset($options['restaurantRegionID']))
            $this->db->where('restaurantRegionID', $options['restaurantRegionID']);
        if(isset($options['restaurantName']))
            $this->db->where('restaurantName', $options['restaurantName']);
        if(isset($options['restaurantAddress1']))
            $this->db->where('restaurantAddress1', $options['restaurantAddress1']);
        if(isset($options['restaurantAddress2']))
            $this->db->where('restaurantAddress2', $options['restaurantAddress2']);
        if(isset($options['restaurantSuburb']))
            $this->db->where('restaurantSuburb', $options['restaurantSuburb']);
        if(isset($options['restaurantCity']))
            $this->db->where('restaurantCity', $options['restaurantCity']);
        if(isset($options['restaurantInformation']))
            $this->db->where('restaurantInformation', $options['restaurantInformation']);

        // limit / offset
        if(isset($options['limit']) && isset($options['offset']))
            $this->db->limit($options['limit'], $options['offset']);
        else if(isset($options['limit']))
            $this->db->limit($options['limit']);

        // sort
        if(isset($options['sortBy']) && isset($options['sortDirection']))
            $this->db->order_by($options['sortBy'], $options['sortDirection']);

        $query = $this->db->get("tblRestaurants");

        if(isset($options['count'])) return $query->num_rows();

        if(isset($options['restaurantID']))
            return $query->row(0);

        if(isset($options['limit']) && $options['limit'] == '1')
            return $query->row(0);

        return $query->result();
    } 

Теперь следующий код работает нормально:

$this->load->model('Restaurants_model');
        $data['restaurant'] =  $this->Restaurants_model->GetRestaurants(array(
            'restaurantName' => 'shed 5', 
            'limit' => '1'
            )); 

Однако следующее не работает:

$this->load->model('Restaurants_model');
        $data['restaurant'] =  $this->Restaurants_model->GetRestaurants(array(
            'restaurantName' => str_replace('-', ' ', $this->uri->segment(2)), 
            'limit' => '1'
            )); 

Даже если результат

str_replace('-', ' ', $this->uri->segment(2)) 

в этом случае: 'shed 5'.

Я сравнил var_dumps с выводом str_replace и самой строки и определил, что они идентичны.Так почему же прямая строка возвращает результат, а строка, сгенерированная из сегмента uri, - нет?Какая-то проблема с кодировкой?Моя база данных хранит данные в 'utf8_general_ci'.

Спасибо за любые предложения!

1 Ответ

0 голосов
/ 15 октября 2010

$ restaurant = str_replace ('-', '', $ this-> uri-> сегмент (2));

получить значение вне массива и попробовать array_push

$ data ['restaurant'] = $ this-> Restaurants_model-> GetRestaurants (массив ( 'restaurantName' => $ restaurant, 'limit' => '1' ));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...