PHP PDO插入问题

PHP PDO插入问题,php,mysql,database,Php,Mysql,Database,我用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::execu

我用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)和问号(?)

列名为
UPDATE
似乎是您的问题。尝试引用列名(或将列名更改为非保留字)。

GRANT和
UPDATE
在SQL中都有特定含义。试试这个:

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

不确定,但“更新”不是保留字吗?尝试将
update
放在backticks中。即使只有一个字段,例如
$grant\u name,它也会失败。
这是因为
grant
也是一个保留字@布拉德:哈哈,哦,我完全错过了!