带有变量的MySQL LIKE子句在CodeIgniter中

时间:2017-01-24 17:20:00

标签: php mysql codeigniter

我定义了一个模型,并尝试使用UNION关键字从两个表中获取数据。在这里,我使用LIKE关键字作为约束。当我使用没有变量的这个查询(硬编码的变量值)时,它可以工作。但它并不适用于变量。相反,它给出了一个空数组。它有什么问题?

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());

}

2 个答案:

答案 0 :(得分: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());    
}

答案 1 :(得分: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());     
}