1

ランキングにしたいと思います。

表1

  • ID
  • 名前
  • エクスペリエンスポイント
  • LvL。

表2

  • LvL
  • エクスペリエンスポイント。

フォームから Table1 にデータを収集したいと思います。さて、誰もが XP と LvL を書かなければなりません。

XP を投稿すると、LvL が自動的に表 2 から取得されるようになるとよいでしょう。

これでテーブルにデータを挿入します:

$mysql ="INSERT INTO $table (id, name, xp, lvl) VALUES ('$id','$name','$xp','$lvl')";

そして、これでレベルを選択します:

$query="select id from table2 where $lvl>=$xp LIMIT 0 , 1";

しかし、どうすれば選択範囲に参加して挿入できますか?

4

1 に答える 1

1

使用INSERT...INTO SELECTステートメント

INSERT  INTO table1 (ID, Name, ExperiencePoint, Lvl)
SELECT  '$id' AS ID, '$name' AS Name, 
        '$xp' AS ExperiencePoint, Lvl
FROM    table2
WHERE   ExperiencePoint = '$xp'

SQL Injection補足として、値が外部から取得された場合クエリは脆弱です。予防方法については、以下の記事をご覧ください。PreparedStatements を使用すると、値を一重引用符で囲む必要がなくなります。

于 2013-01-20T16:14:50.617 に答える