我确信你们中的一些人厌倦了我的帖子,因为它们似乎非常基础,但我在“mysql_result()”方面遇到了类似的问题。我的代码不断输出此错误:
Warning: mysql_result() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-5.3.9\www\Image Upload\func\user.func.php on line 10
当我检查反引号是否在正确的位置时..我不知道我的错误可能在哪里..这是代码:
function login_check($email, $password){
$email = mysql_real_escape_string($email);
$login_query = mysql_query("SELECT COUNT (`user_id`) as `count`, `user_id` FROM `users` WHERE `email` = '$email' AND `password` = '".md5($password)."'");
return (mysql_result($login_query, 0) == 1) ? mysql_result($login_query, 0, '$user_id') : false;
}
这是第 10 行:
return (mysql_result($login_query, 0) == 1) ? mysql_result($login_query, 0, '$user_id') : false;
感谢大家的耐心和帮助! -TechGuy24
最佳答案
语法错误:
$login_query = mysql_query("SELECT COUNT (`user_id`) as `count`, `user_id` FROM `users` WHERE `email` = '$email' AND `password` = '".md5($password)."'");
^-- ^--
反引号用于转义字段/表规范中的保留字。 as
别名不需要转义,因为它显然不是字段/表名称。
您还使用了聚合函数 count()
,但也选择了非聚合字段 (user_id
),没有 group by
> 子句,所以 mysql 也会提示这一点。
如果您的代码结构如下:
$result = mysql_query($sql) or die(mysql_error());
^^^^^^^^^^^^^^^^^^^^^^
您会看到语法错误消息。永远不要假设查询已经成功。始终检查是否有错误。即使您的 SQL 语法 100% 完美,仍有太多其他原因导致无法检查。
关于php - 为什么我得到的数值是 0 而不是 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12170847/