【发布时间】:2012-02-18 20:02:24
【问题描述】:
我的目的是查找表中与存储在字符串中的集合匹配的所有项目:
$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'