2011-07-19 64 views
1

我已經打了一堵牆與PDO插入:PHP PDO插入問題

$q = $dbh->prepare('INSERT INTO grant (grant_name, update) VALUES (?,?)'); 
$q->bindParam(1, $grant_name, PDO::PARAM_STR); 
$q->bindParam(2, $update, PDO::PARAM_STR); 
$q->execute(); 

我得到一個錯誤:

PHP Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; 

但我不能發現問題。我嘗試過使用佔位符(例如:grant_name)並使用問號(?)。

+2

不確定,但不是「更新」保留字?嘗試將'update'放入反引號中。 –

+0

甚至在使用單個字段時也會失敗,例如'$ grant_name.' – tcrabtree

+1

這是因爲'GRANT'也是一個保留字! – Brad

回答

1

列名稱爲UPDATE似乎是您的問題。嘗試引用列名稱(或將列名更改爲不是保留字的內容)。

6

GRANTUPDATE在SQL中都有特定的含義。試試這個:

$q = $dbh->prepare('INSERT INTO `grant` (`grant_name`, `update`) VALUES (?,?)');