在查询中调用tinyint为0(用作布尔值)的位置

时间:2012-11-29 20:29:29

标签: php mysql

我目前正在使用tinyint在mysql中存储布尔值,并且我正在尝试查询数据库但它失败了。我得到的错误是Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given,如果我没有弄错,只是意味着查询不起作用。在我发布查询之前,让我说我正在使用几乎弃用的php进行查询,但是它不会正常运行,我只是需要它才能真正快速地工作。我知道这些东西都在更新,所以随时分享任何相关的材料(我确实需要赶上它),但我正在寻找的解决方案是我的旧学校查询。查询是:

$sql = mysql_query("SELECT * FROM contact ORDER BY id ASC WHERE read='0'");

其中read是有问题的tinyint。

我试过WHERE read=0WHERE read=false

这些都不起作用,我提前感谢任何帮助!

1 个答案:

答案 0 :(得分:4)

您需要正确构建查询:

"SELECT * FROM contact WHERE read=0 ORDER BY id ASC"

ORDER BY之前的地方。

此外,“mysql_num_rows()期望参数1是资源”正在发生,因为您在失败的查询上调用方法 - 而不是资源。您可以使用mysql_query("SELECT... your query") or die(mysql_error())之类的内容在查询本身上收到正确的错误但正式我们都建议您转到PDOmysqli 并使用各自的错误报告实用程序。