でエスケープされた文字列を見つけることができません。私はMairies
を探ししようとした場合は、私は、このような文字列を持っているデータベース内のデータベース
$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
今、のみ、またはHotels
だけそれは私に結果を返します。これは、アポストロフィが、準備されたクエリが正しく実行されないことを意味します。これをどうすれば解決できますか?
'with'(2つの一重引用符)を置き換えて試してみてください。 –
はい、アポストロフィが原因でクエリに構文エラーが発生しています。それは準備された声明が避けなければならないものです。残念ながら、あなたは準備されたステートメントを使用していません。通常の古いSQLインジェクションの傾向があります。どのMySQL拡張機能を特に使用していますか? MySQLi? PDO? – deceze
@Thit:どこが正確に?? – Luca