无法在数据库中找到转义字符串

时间:2012-02-10 09:33:18

标签: php mysql

在数据库中,我有一个这样的字符串: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

现在,如果我尝试仅查找MairiesHotels,则只会返回结果。这意味着撇号阻止我准备好的查询正确运行。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

首先使用mysqli_real_escape_string函数转义查询。

答案 1 :(得分:1)

字符串“Caisse primaire d'assurance maladie”中有一个引号。也许这个单引号意外结束你的sql字符串。
我建议你先打印你的sql语句来检查它是否正确。:)

答案 2 :(得分:1)

  

我该如何解决这个问题。

使用真实准备好的查询,而不仅仅是模仿

或者通过逃避你的字符串。