包含该错误的脚本是:
$stmt = $this->db->prepare('SELECT libelle,activite,adresse,tel,lat,lng FROM etablissements where type IN ('.$in_list.')');
$stmt->execute();
$stmt->bind_result($libelle,$activite,$adresse,$tel,$lat,$lng);
在服务器上运行的php版本(不是localhost)是5.2.17
答案 0 :(得分:5)
$stmt
应该是方法execute()
的对象
好像$this->db->prepare()
似乎没有返回好结果。
如果$this->db
是mysqli()
对象,您应该bind the parameters这样:
if ($stmt = $this->db->prepare('SELECT libelle,activite,adresse,tel,lat,lng FROM etablissements where type IN (?)')) {
$stmt->bind_param("s", $in_list);
$stmt->execute();
// ...
}
答案 1 :(得分:1)
检查你执行的sql,
$this->db->prepare('SELECT libelle,activite,adresse,tel,lat,lng FROM etablissements where type IN ('.$in_list.')');
不会返回有效的语句对象。
答案 2 :(得分:0)
交换语句绑定并执行并将结果替换为param,它将正常工作
$stmt = $this->db->prepare('SELECT libelle,activite,adresse,tel,lat,lng FROM etablissements
where type IN ('.$in_list.')');
$stmt->bind_param($libelle,$activite,$adresse,$tel,$lat,$lng);
$stmt->execute();
答案 3 :(得分:-2)
您的db对象为null。检查是否过早关闭连接或以某种方式将其覆盖为null。