-4
4

3 に答える 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 に答える