0

私のコードがあります:

$sql = "INSERT INTO item SET 
    player = '$player', 
    amount = '$amount', 
    item = '$item',
    allowed = '$allowed' ON DUPLICATE KEY UPDATE 
    amount = amount + $amount";

このクエリを実行すると、既に存在しているにもかかわらず、データベースに新しい行が作成されます...

手伝ってくれてありがとう。

4

3 に答える 3

2

私はそのようにします:

$sql = "INSERT INTO DBNAME.item (player, amount, item, allowed) 
        values('$player', '$amount', '$item', '$allowed') 
        ON DUPLICATE KEY UPDATE 
        amount = amount + values(amount);";
于 2013-03-01T20:28:19.780 に答える
2

構文が正しくありません。この修正版:

$sql = "INSERT INTO item SET 
    player = '$player', 
    amount = '$amount', 
    item = '$item',
    allowed = '$allowed' 
    ON DUPLICATE KEY UPDATE 
    amount = `amount` + '$amount' ";

他の要因は、テーブル構造とキーによって異なります

于 2013-03-01T20:26:33.783 に答える
2

コメントでは、テーブルにキーがないと言っています。それは問題だ。データベースに問い合わせていますON DUPLICATE KEY UPDATEが、 がないと、UNIQUE KEYa が何であるかわかりませんDUPLICATE KEY

複製したくないフィールドにUNIQUE KEY(または)を追加する必要があります。PRIMARY KEY

于 2013-03-01T20:36:10.083 に答える