2
我的目的是找到匹配存儲在一個字符串的集合,該表中的所有項目進行搜索:使用IN指令用事先準備好的聲明中
$array=array("item1","item2","item3","item4");//This is dynamically filled, this is just an example
$in_list = "'".implode("','",$array)."'";//that's why i use implode
$stmt = $this->db->prepare('SELECT libelle,activite,adresse,tel,lat,lng FROM etablissements where type IN ('.$in_list.')');
$stmt->bind_param("s", $in_list);
$stmt->execute();
$stmt->bind_result($libelle,$activite,$adresse,$tel,$lat,$lng);
這似乎並不完美,它總是拋出我以下警告:
mysqli_stmt::bind_param() [<a href='mysqli-stmt.bind-param'>mysqli-stmt.bind-param</a>]: Number of elements in type definition string doesn't match number of bind variables in <b>/homepages/25/d399726988/htdocs/
如果我有一個參數,這將是顯而易見的:
$stmt = $this->db->prepare('SELECT libelle,activite,adresse,tel,lat,lng FROM etablissements where type =?');
$stmt->bind_param("s", $parameter);
但是由於我必須處理這個問題,對我來說變得有點複雜。
你是怎麼得到,如果你打印'$ in_list' –
這是一個列表用逗號分隔:'item1','item2','item3'' – Malloc
[PDO with「WHERE ... IN」queries]的可能重複(http://stackoverflow.com/questions/2373562/pdo-with查詢中的問題) –