2012-05-25 3 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 
Смежные вопросы