用于显示表中记录的SQL查询中的错误

时间:2014-04-30 10:35:52

标签: php sql

我正在尝试以下查询,它运行正常

$sqlmsg=$Db1->query("SELECT COUNT(username)  AS tmsgs FROM messages");

$tempmsg=$Db1->fetch_array($sqlmsg);

$thismemberinfo['msg']=$tempmsg[tmsgs];

显示输出

$thismemberinfo[msg]

当尝试对同一个表运行以下查询时,它会给我错误:

$sqlmsg=$Db1->query("SELECT COUNT(read)  AS tmsgs FROM messages");

$tempmsg=$Db1->fetch_array($sqlmsg);

$thismemberinfo['msg']=$tempmsg[tmsgs];

读取的值始终为[0或1]。

运行第二个查询时会产生Follwing错误:

数据库错误:无效的SQL:SELECT COUNT(读取)AS tmsgs FROM消息 MySQL错误:1064(您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在'read'附近使用正确的语法AS Tmsgs FROM messages'在第1行)

会话暂停。

任务我想要继续:

我有一个存储用户消息的表,read = 1,unread = 0, 我想在登录时显示每个用户的未读消息。

想到这样的事情

 $sqlmsg=$Db1->query("SELECT COUNT(read)  AS tmsgs FROM messages WHERE username=$username");

2 个答案:

答案 0 :(得分:3)

read是MySQL中的reserved word(s)。你需要用反引号包装它们。

应该是......

$sqlmsg=$Db1->query("SELECT COUNT(`read`)  AS tmsgs FROM messages");

答案 1 :(得分:1)

read是保留关键字

使用反引号
`read`