我定义了一个模型,并尝试使用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());
}
答案 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());
}