Я использую PDO по всему сайту;однако когда дело доходит до обновления ключа в таблице audkey, следующее (упрощенный метод) не будет успешно выполнено в БД:
try {
$dbh = new PDO(etc...);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$currentKey = getCurrentKey(); //returns a SHA1 key
beginTransaction($dbh); // not a typo, call to a wrapper function!
$stmt = $dbh->prepare("UPDATE auditkey SET key=:nextKey");
$stmt->bindValue(':nextKey', sha1($currentKey), PDO::PARAM_STR);
$success = $stmt->execute();
$dbh->commit();
}
Я получаю следующую ошибку:
SQLSTATE [42000]: синтаксическая ошибка или нарушение доступа: 1064 В синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'key =' f6aa38e947482563913c56c2c72a59ea623c7dfb '' в строке 1
Когда UPDATE изменяется и вводится вручную, SQL работает нормально:
UPDATE `auditkey` SET `key`='f6aa38e947482563913c56c2c72a59ea623c7dfb';