[英]How to use like clause in code iginiter query() WITH BIND PARAMS?
如何在帶有綁定參數的代碼iginiter query()中使用like子句?
例如:當我使用
$query = 'SELECT mycol FROM mytable WHERE name LIKE %?';
$name = 'foo';
$db->this->query($query,array($name));
//the clause generated
//SELECT mycol FROM mytable WHERE id LIKE '%'foo'%'
//I expected this
//SELECT mycol FROM mytable WHERE id LIKE '%foo'
我不將參數值放在查詢中並按如下方式使用:$ query ='從mytable那里選擇mycol名稱,例如'%foo';
我也不能使用$ this-> db-> like()函數,因為我的查詢包括:INSERT IGNORE和INSERT INTO表SELECT col FROM table2;
請提出建議? 謝謝,
只需使用CodeIgniter查詢生成器
$name = 'foo';
$query = $this
->db
->select('mycol')
->like('name', $name)
->get('mytable');
$query = 'SELECT mycol FROM mytable WHERE name LIKE ?';
$name = '%foo';
$this->db->query($query,array($name));
codeigniter會取代?
具有'params'
值。 如果你寫這個
$query = 'SELECT mycol FROM mytable WHERE name LIKE %?';
$name = 'foo';
//$db->this->query($query,array($name)); //you wrote this line wrong.
//it should be like this
$this->db->query($query,array($name));
它會產生
SELECT mycol FROM mytable WHERE name LIKE %'foo' //inverse comma after % ,actually before and after foo.
所以你的正確方法是
$query = 'SELECT mycol FROM mytable WHERE name LIKE ?';
$name = '%foo';
$this->db->query($query,array($name));
它將產生
SELECT mycol FROM mytable WHERE name LIKE '%foo'
注意
你寫錯了
$db->this->query($query,array($name));
正確的路
$this->db->query($query,array($name));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.