php - 为什么我得到的数值是 0 而不是 1?

标签 php mysql

我确信你们中的一些人厌倦了我的帖子,因为它们似乎非常基础,但我在“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/

相关文章:

php - 基于数字技能值创建 "teams"的算法

php - PHP @ 是否可以安全地检查数组值?

mysql - Ansible设置root用户密码

php - 登录时验证用户并授予他们有限的数据库权限

mysql - 在 sql 触发器中设置和比较变量的正确方法是什么

php - 从第一个表中选择数据并按mysql中第二个表中的字段排序

javascript - 使用 php 回显 javascript,包括 mysql 行变量

php - 是否可以从 PHP 中的数组值自动生成 Getter/Setter?

mysql - Sql Count 包含一些值的行

php - 如何以编程方式将类别添加到 WooCommerce 产品?