2012-05-25 99 views
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當我嘗試瓶坯下面的查詢語法無效:PDO - 爲UPDATE查詢

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時必須採用不同的方式來執行此操作。

回答

6

你缺少SET

UPDATE alltimehighscores SET time = time + :time WHERE username = :username 
+0

不知道我是如何成功地錯過了,謝謝你。 – Dan

+0

您正在查看代碼太久。 – gcochard

1

SET丟失:

UPDATE alltimehighscores SET `time` = `time` + :time 
WHERE username = :username