2017-01-24 5 views
0

モデルを定義し、UNIONキーワードを使用して2つのテーブルからデータを取得しようとしました。ここでは、制約としてLIKEキーワードを使用しました。変数(ハードコードされた変数値)なしでこのクエリを使用すると、動作します。しかし、変数では機能しません。代わりに空の配列を返します。どうしたの?CodeIgniterの変数を持つMySQL 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

'%".$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());  
}