2017-01-24 3 views
0

Я определил модель и попытался получить данные из двух таблиц, используя ключевое слово UNION. Здесь я использовал ключевое слово LIKE в качестве ограничения. Когда я использую этот запрос без переменных (жестко закодированные значения переменных), он работает. Но это не работает с переменными. Вместо этого он дает пустой массив. Что с этим не так?Предложение MySQL LIKE с переменными в CodeIgniter

function searchProf(){ 
    //$name=$this->input->post('name'); 
    $name='du'; 
    $query=$this->db->query("SELECT name FROM users WHERE name like '%".$name."%' UNION SELECT name FROM children WHERE name like '%".$name."%' "); 
    print_r ($query->result()); 

} 

ответ

0

Изменение '%".$name."%' к этому '%$name%'.


function searchProf(){ 
    //$name=$this->input->post('name'); 
    $name ='du'; 
    $query = $this->db->query("SELECT name FROM users WHERE name like '%$name%' UNION SELECT name FROM children WHERE name like '%$name%' "); 
    print_r ($query->result());  
} 
0

Пожалуйста, используйте активную запись базы или SQL связывания с вашими запросами SQL. В противном случае вам придется столкнуться с SQL-инъекциями.

`

function searchProf(){ 
    $name ='du'; 
    $sql = "SELECT name FROM users WHERE name like ? UNION SELECT name FROM children WHERE name like ? "; 
    $query = $this->db->query($sql,array('%'.$name.'%','%'.$name.'%')); 
    print_r ($query->result());  
} 
Смежные вопросы