URLに入力された変数値と一致する場合にMySQLデータベースからデータを選択することを目的としたSQL selectステートメントがあるため、URLに追加された場合、12に等しい?id=12
データベース行を返す必要があります.id
URL に奇数の値を入力してスクリプトを壊そうとしたときに、この奇妙な問題に遭遇しました。ユーザーが URL に数字の後にテキストを入力すると、URL に入力された文字列の数値部分と一致し、例えば:
...index.php?id=12agsgs
はレコード where と一致しますがid = 12
、これは意図したものではありません。
テキストが数字の前に表示される場合、予想どおり、エラーまたは空の結果が返されます。
...index.php?id=agsgs12
空またはエラーを返します。
すべてがとてもシンプルです。GET
変数へのコードは次のとおりです。
if (isset($_GET['id'])) {
$id = $dbConnect->real_escape_string($_GET['id']);
}
SQL 選択コードは次のとおりです。
$sql = "SELECT * FROM `tablename` WHERE `id` = '$id'" ;
のフィールドid
はtablename
、自動インクリメント整数インデックス フィールドです。したがって、入力.../index.php?id=12agsgs
すると空の結果が返されます。
本当に明らかなことを見逃していませんか?これは非常に奇妙に思え、何が起こっているのか理解できません。いつものようにどんな助けでも大歓迎です!