Php 为什么';我的查询不能执行吗?

Php 为什么';我的查询不能执行吗?,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我有一个查询,它输入了这些变量(但来自POST表单): 查询如下: $stmt = $dbu->prepare("INSERT INTO users (username, email, password, activated, key) VALUES (?, ?, ?, ?, ?)"); $stmt->execute(array($username, $email, $passwordEnc, $activated, $activationKey)); 没有错误,但是没有将条目添加

我有一个查询,它输入了这些变量(但来自POST表单):

查询如下:

$stmt = $dbu->prepare("INSERT INTO users (username, email, password, activated, key) VALUES (?, ?, ?, ?, ?)");
$stmt->execute(array($username, $email, $passwordEnc, $activated, $activationKey));
没有错误,但是没有将条目添加到名为“users”的表中。

您需要像
password
key
那样使用反勾号进行转义

INSERT INTO users (username, email, `password`, activated, `key`) VALUES ...

添加此行以获取任何pdo查询错误

我检查过,只是为了节省一些时间,'Key'是其中唯一保留的字。

可能重复$stmt->execute返回的内容?请将您的prepare和execute放在
try{}catch(PDOException$e){echo$e;}
块中,并告诉我们结果。@Daedalus当我这样做时,它不会显示错误。。谢谢,这节省了我很多时间!经常忘记这一点。。当我能接受的时候,我会接受的,祝你有一个美好的一天!我使用MySQL工作台来设计查询。它突出显示保留字,您可以从一开始就看到问题。
INSERT INTO users (username, email, `password`, activated, `key`) VALUES ...
$dbu->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbu->errorInfo();