質問する
268 次
3 に答える
1
- mysqli (i は改善されたもの) と mysql (非推奨の apiのように) 関数 を混在させています。
- クエリのパラメーターを適切にエンコードしていないため、コードはsql インジェクションを起こしやすいです。multi_query() を使用しているため、このスクリプトは実際にbobby tablesになりがちです。これを防ぐ良い方法については、stackoverflow を検索してください。
- 現在の形式では、スクリプトは実際のデータではなく、レコード数のみを必要とします。このような場合は、
SELECT Count()
代わりに実際のデータを取得してください - このアプローチをロックしないと、競合状態が発生しやすくなります。2 つの同一の (キーによって定義された) レコードの挿入を許可しない一意の制約を使用することをお勧めします。次に、スクリプトで特定のエラー コードをテストして、ユーザーに「item alread in database」メッセージを表示できます。
編集: パラメータ $data は によって適切に処理され$mysqli->real_escape_string
ます。
ただし、 $filename は、クライアントが http 要求で送信する実質的に任意の文字列になる可能性があるため、「任意のデータ」でもあります。したがって、これもエスケープする必要があります。
于 2013-01-28T11:17:10.120 に答える
0
の代わりにif(mysql_num_rows($rs) == 0)
、if($rs->num_rows)
于 2013-01-28T11:10:53.647 に答える
0
echo $q;
phpmyadminで実行するとクエリが表示されますが、クエリが間違っていると思います。
于 2013-01-28T11:17:01.420 に答える