2016-02-06 3 views
0

This is the columnпоиск одного слова в колонке

Я хочу, чтобы принести одно слово из 4 слов в колонке категории. Например, я ищу Buffet и ресторан, на котором будет отображен Buffet. Это мой код до сих пор и, к сожалению, он не работает.

HomeController

public function searchresto(){ 

    $searchinfo = $_POST['searchinfo']; 

    $this->load->model('RestoModel'); 
    $restaurantinfo['restaurantinfo']=$this->RestoModel>searchRestaurant($searchinfo); 

    $this->load->view('pages/searchDisplay',$restaurantinfo); 
} 

RestoModel

public function searchRestaurant($searchinfo){ 

    $sql = "SELECT * FROM restaurants WHERE restoname = '$searchinfo' OR restocuisines = '$searchinfo' OR category = '$searchinfo'"; 
    $result = $this->db->query($sql); 
    $result = $result->result('array'); 

    return $result; 
} 
+0

поэтому вы нормализуют дб, а не воспаленные данные как этот –

+0

Вы можете сделать 'категорию, как«термин%%» '. Вы не должны передавать пользовательский ввод непосредственно в SQL-запрос. – chris85

ответ

1

Во-первых, дезинфицировать ввод данных пользователем. Никогда не запрашивайте базу данных непосредственно с пользовательского ввода, так как это может вызвать SQL Injection.

После санации ввода пользователя попробуйте использовать функцию LIKE.

Например:

SELECT 'Breakfast, Lunch, Dinner, Buffet, Snack' LIKE '%Lunch%' выведет 1.

SELECT 'Breakfast, Lunch, Dinner, Buffet, Snack' LIKE '%NonExistantCategory%' выведет 0.


Попробуйте изменить запрос SELECT * FROM restaurants WHERE category LIKE '%$searchinfoSanatized%', где $searchinfoSanatized является вход, который отфильтрован/спасся ,

Кроме того, я полагаю, вы забывание - после RestoModel: $restaurantinfo['restaurantinfo']=$this->RestoModel>searchRestaurant($searchinfo);

+0

как мне дезинфицировать ввод пользователя? – Yuki

+0

@Yuki - простой способ использовать функцию escape-функции вашего класса DB. Посмотрите на [эту статью о SO.] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – bnahin

+0

в порядке. Я попробую поблагодарить вас: D – Yuki

Смежные вопросы