2011-07-19 189 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 (?,?)');