我正在尝试以下查询,它运行正常
$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");
答案 0 :(得分:3)
read
是MySQL中的reserved word(s)
。你需要用反引号包装它们。
应该是......
$sqlmsg=$Db1->query("SELECT COUNT(`read`) AS tmsgs FROM messages");
答案 1 :(得分:1)
read是保留关键字
使用反引号`read`