0 レビュー
1 回答
php-非特定の値を受け入れるPDOMySQL
データベースにid
の1、2、3の3行があります。
次のようなステートメントを作成すると、次のようになります。
$ prepare = $ database-&gt ; prepare( "select * from brand where id =?");
$ prepare-&gt ; execute($ array);
echo $ prepare-&gt ; rowCount();
配列にカウントを与えます。値は正確なidではありませんが、 ;
を使用して閉じます。例
カウントする配列値は、'row' ;
1 = 1
2 = 1
3 = 1
4 = 0
5 = 0
1 ; 2 = 1
3 ; 4 = 1
4 ; 2 = 0
1 ; 2
や3; 4
などの値がクエリで機能するのはなぜですか?
わからない
0
レビュー
答え :
解決策:
合理的な質問。これは、MySQLが数値コンテキストで文字列を数値に暗黙的に変換するという事実と関係があります。文字列の先頭の数字を調べて変換することで変換を行います。
つまり、次の式:
where id = '1;2'
は次のように解釈されます:
where id = 1
そして一致があります。
これは、 id
が0
であり、次のようなテーブルでは特に悪質です。
where id ='abc'
文字列はサイレントに整数0に変換され、一致する可能性があります。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。