2

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= time + '1' WHERE username = 'admin-test'' at line 1次のクエリを実行しようとすると、エラーが発生します。

try
{
    $sth = $dbh->prepare("UPDATE alltimehighscores time = time + :time
        WHERE username = :username");
    $arr = array(
        ':username' => $username,
        ':time' => $time
        );
    $sth->execute($arr);
}
catch (PDOException $e)
{
    echo $e->getMessage();
    exit();
}

$timeとの$username値は、 から先に割り当てられます$_GET$dbh上にも割り当てられていますが、上に別のクエリがあり、正常に実行されるため、正常に動作しています。

エラーメッセージを見るとtime、現在のデータベース値に変更されていないことがわかります。そのため、PDO を使用する場合は別の方法でこれを行う必要があると想定しています。

4

2 に答える 2

6

SET がありません

UPDATE alltimehighscores SET time = time + :time WHERE username = :username
于 2012-05-25T20:04:08.780 に答える
1

SET不足している:

UPDATE alltimehighscores SET `time` = `time` + :time
WHERE username = :username
于 2012-05-25T20:04:26.613 に答える