警告:mysql_result()。无法解决

时间:2013-05-02 05:46:20

标签: php mysql error-handling

我收到此错误:

警告:mysql_result():提供的参数不是有效的MySQL结果资源

我已经检查了其他问题,似乎无法找到答案。有什么想法吗?

$query = mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username' AND `active` == 1");
return(mysql_result($query, 0) == 1) ? true : false;

3 个答案:

答案 0 :(得分:3)

您的查询无效的原因是您使用单引号包装列名称和表名称。它们是标识符而不是字符串文字,所以它们不应该用单引号换行。

SELECT COUNT(id) FROM users WHERE username = '$username'

如果使用的列名和表名是保留关键字,则可以使用反引号转义,而不是使用单引号。

在这种情况下,不需要反引号,因为它们都不是保留关键字。

其他链接:


作为旁注,如果变量的值( s )来自外部,则查询易受SQL Injection攻击。请查看下面的文章,了解如何防止它。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。

答案 1 :(得分:2)

查询应该是,您使用'围绕列名称,您必须使用`

围绕它
mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username'");

更改此

`active` == 1");

`active` = 1");

答案 2 :(得分:1)

如果你想要这个

,这不是一个正确的方法来转义列使用反引号操作符
$query = mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username'");