在数据库中,我有一个这样的字符串:Caisse primaire d'assurance maladie
现在,当我尝试在我的PHP脚本中查找它时,它不返回任何项目。
$array=array("Caisse primaire d'assurance maladie","Mairies","Hotels");
$in_list = "'".implode("','",$array)."'";
$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);//the $stmt is empty
现在,如果我尝试仅查找Mairies
或Hotels
,则只会返回结果。这意味着撇号阻止我准备好的查询正确运行。我该如何解决这个问题?
答案 0 :(得分:1)
首先使用mysqli_real_escape_string
函数转义查询。
答案 1 :(得分:1)
字符串“Caisse primaire d'assurance maladie”中有一个引号。也许这个单引号意外结束你的sql字符串。
我建议你先打印你的sql语句来检查它是否正确。:)
答案 2 :(得分:1)
我该如何解决这个问题。
使用真实准备好的查询,而不仅仅是模仿。
或者通过逃避你的字符串。