这个mysqli查询有什么问题?

时间:2012-07-11 21:55:43

标签: php mysql mysqli

我正在为数据库添加新的电子邮件地址。 当我使用

检查用户是否存在时
if (!($stmt = $dbConnection->prepare('SELECT `email_addr` FROM '.TABLE_NAME.' WHERE `email_addr` = ?')))`

一切正常。

当我尝试运行时

if (!($stmt = $dbConnection->prepare('INSERT INTO '.TABLE_NAME.'(`email_addr`,`date_subscribed`,`act_code`,`subscribe_ip`) VALUES (?,?,?,?)' )))

我收到错误Unknown column 'email_addr' in 'field list'。我已经搜索了很多,并认为可能添加反引号可以解决问题,但事实并非如此。如果您需要更多代码,请告诉我们。

解决:常数中有一个拼写错误。感谢大家告诉我在PHPmyadmin中运行查询,这让我发现了问题。

3 个答案:

答案 0 :(得分:1)

Unknown column 'email_addr' in 'field list'

此错误表示您正在引用不存在的列名。检查您的表以确保该列名是正确的,并确保您在查询中使用了正确的变量。

尝试从您尝试插入的列中删除“`”:

(email_addr, date_subscribed, act_code, subscribe_ip)

此外,尝试回显查询并直接在phpMyAdmin中运行它以查看结果。可能存在您不知道的格式问题。

答案 1 :(得分:1)

echo 'SELECT `email_addr` FROM '.WPINSTALL_TABLE_NAME.' WHERE `email_addr` = ?'

然后查看您的SQL代码,然后直接在PHPMyAdmin控制台中尝试SQL代码并告诉我们答案是什么......

答案 2 :(得分:0)

也许在这里添加空间

[space](`email_addr`...)