※ ChatGPTを利用し、要約された質問です(原文:フォームにダブルクォーテーションが含まれているとデータベースエラー)
HTMLフォームのダブルクォーテーションエラーの対処方法とは?
このQ&Aのポイント
HTMLのフォームから投稿された文字列を取得し、その文字列と一致する語をデータベース(MySQL)から検索するシステムを作成しています。
しかし、フォームにダブルクォーテーションが含まれているとデータベースエラーが発生します。
ダブルクォーテーションを省くこともできますが、それではダブルクォーテーションを含む語を検索できなくなります。対処方法について教えてください。
フォームにダブルクォーテーションが含まれているとデータベースエラー
HTMLのフォームから投稿された文字列を取得し、その文字列と一致する語をデータベース(MySQL)から検索するシステムを作成しております。
入力された文字列を調べるということまでは完了したものの、フォームに "(ダブルクォーテーション)が入っておりますとエラーが出るというものです。
原因は分かっているのですけれども、その対処法が思い浮かばずに困っております。
ソースは以下の通りです。
[form.html]
<form action="submit.php" method="POST">
<input type="text" name="word">
<input type="submit" name="submit" value="GO">
</form>
[submit.php]
$word = $_POST['word'];
$query_word = mysql_query(
'SELECT * FROM tbword WHERE word like "%'.$word.'%";'
);
$result_word = mysql_fetch_object( $query_word );
上記の方法ですと、検索に「教えて"goo」となっていた場合、実際にはSQLに直されると
(省略)WHERE word like "教えて"goo";
となってしまうからのようです。
ダブルクォーテーションを予め省くことも考えましたが、それではダブルクォーテーションを含む語を検索できなくなってしまいます。
どうにか、よい方法は無いでしょうか?宜しくお願い致します
お礼
ダブルクォーテーションが2つ入っていると分断されるのでエラーが出るかと思っていたのですが、そうでもないのですね。 どうもありがとうございます。