警告:mysql_result()。无法解决
即时得到这个错误:警告:mysql_result()。无法解决
警告: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;
查询应该是,你用'
各地列名,你必须围绕与`
mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username'");
改变它这个
`active` == 1");
到
`active` = 1");
林不知道它有什么不同? – RightLeftRight12 2013-05-02 05:49:11
我没有看到downvote – asprin 2013-05-02 05:49:17
好吧哇,我现在看到它!非常感谢 – RightLeftRight12 2013-05-02 05:49:58
查询不起作用的原因是因为您正在用单引号包装列名和表名。它们是标识符而不是字符串文字,因此它们不应该用单引号包装。
SELECT COUNT(id) FROM users WHERE username = '$username'
如果碰巧使用的列名和表名是保留关键字,它们可以与不带单引号反引号逃脱。
在这种情况下,反引号并不是必需的,因为它们都不是保留关键字。
其他链接:
一点题外话,查询与SQL Injection
脆弱的,如果变量的值(小号)是从哪里来的外。请看下面的文章,了解如何防止它。通过使用PreparedStatements
你可以摆脱使用单引号围绕值。
+1精确解释 – asprin 2013-05-02 05:49:40
好的谢谢非常! – RightLeftRight12 2013-05-02 05:53:27
林非常抱歉,但我现在收到警告在另一行,但根据另一个改变它。你愿意看看那个吗?它的上面 – RightLeftRight12 2013-05-02 06:03:41
如果你想喜欢这个
$query = mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username'");
删除这不是逃避列使用反引号操作符的正确方式'”“''从username' – asprin 2013-05-02 05:48:03