Php 我的MySQL语句中的那个列有什么问题?

Php 我的MySQL语句中的那个列有什么问题?,php,mysql,Php,Mysql,可能重复: 我有这个: $query=mysql_query("SELECT DISTINCT username FROM messages WHERE to='admin' AND read='0'"); 如果我使用mysql\u fetch\u assoc($query)我会得到错误: PHP警告:mysql\u fetch\u assoc()期望参数1是给定的布尔值 但是,当我从SQL语句中删除以下内容时:和read='0',没有错误,一切正常 关于“阅读”专栏有一些东西。其类型为“

可能重复:

我有这个:

$query=mysql_query("SELECT DISTINCT username FROM messages 
WHERE to='admin' AND read='0'");
如果我使用
mysql\u fetch\u assoc($query)
我会得到错误:

PHP警告:mysql\u fetch\u assoc()期望参数1是给定的布尔值

但是,当我从SQL语句中删除以下内容时:
和read='0'
,没有错误,一切正常

关于“阅读”专栏有一些东西。其类型为“int(1)”,默认值为0

有人知道它为什么这么做吗?非常感谢

阅读
是MySQL中的一个重要功能

您需要用反勾号将列名括起来:

AND `read`='0'
Read
是MySQL中的一个关键技术

您需要用反勾号将列名括起来:

AND `read`='0'

在您的列名周围添加反勾(`),因为read在MySQL中是保留字。

在您的列名周围添加反勾(`),因为read在MySQL中是保留字。

或者更好的是,不要将保留字用于列名!你好,谢谢你的回复。我应该认为使用这个词是不好的习惯吗?此外,使用关键字作为列名通常是不好的做法。或者更好的是,不要使用保留字作为列名!你好,谢谢你的回复。我应该认为使用这个词是不好的习惯吗?此外,使用关键字作为列名通常是不好的做法。请停止使用古老的
mysql.*
函数编写新代码。它们不再得到维护,社区已开始恢复。相反,你应该学习并使用或。如果你想学习,。嗨,非常感谢你的链接。我正在学习PDO教程。请停止使用古老的
mysql.*
函数编写新代码。它们不再得到维护,社区已开始恢复。相反,你应该学习并使用或。如果你想学习,。嗨,非常感谢你的链接。我正在学习PDO教程。当做