私はたくさんのトピックを調べてきましたが、まだ機能するものを見つけていません。または、機能しているかもしれませんが、PHP/MySQL にはかなり慣れていないので、何かが足りないだけかもしれません。
ユーザーがアイテムの名前を入力して (MySQL) データベースで検索できるページがあります。次に、結果の表を生成して表示し、一部のデータをリンクに変換します。リンクされた用語は、データベースの他のフィールドを検索するためのクエリとして使用されます。
検索用語の1つにアポストロフィが含まれている場合を除いて、すべてが機能します。インジェクションの問題を防ぎたいのは明らかですが、アポストロフィで検索する必要もあります。ここに私が持っているコードがあります:
$query = mysql_real_escape_string($query);
$query = htmlspecialchars($query);
$queryentered = $query;
$query = strtolower($query);
クエリに渡す URL は次のとおりです。
echo " from <a href='index.php?volume=".$results2['book']."' class='where'>"
.$results2['book']."</a>";
そしてクエリ:
$raw_results = mysql_query("SELECT * FROM $database1 WHERE $wh LIKE '%$query%'
ORDER BY displayname") or die(mysql_error());
私は何を正しくエンコードしていませんか? 検索を実行すると、「[検索用語] の結果が見つかりません」と表示され、アポストロフィの \' が表示されます。