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 を使用する場合は別の方法でこれを行う必要があると想定しています。