-1
$query=sprintf("SELECT COUNT(id) FROM users WHERE UPPER(username) = UPPER('%s')",
         mysql_real_escape_string($name));

これは私の登録コードです。同じユーザー名がデータベースに既に存在するかどうかを確認し、大文字と小文字が異なる同じ名前 (ピザ、ピザ) を避けるために、すべてを大文字に変換します。2 つの質問があります。

1) sql インジェクションを防ぐために mysql_real_escape_string($name) を使用していますが、これで問題ありませんか? その関数で変数を使用できますか、または使用する必要があります$_POST['user']か?

2) 正確には何sprintf()ですか? なぜそれが必要なのですか、なぜそこ'%s'にあるのですか?

4

2 に答える 2

1

はい、変数名を使用できます。sprintf()文字列の書式設定に使用%sされ、この場合は型指定子です。string

于 2013-07-03T22:25:41.820 に答える