php 没有从数据库中获取用户信息

标签 php mysql

数据库信息正确且有效,我已经测试了好几次。数据库与我试图从中提取数据的表一起存在。我在数据库中有虚拟信息,这是我的代码来检查数据库“网络”中的用户,表“用户”:

<?php 
require 'core/init.php';

if (empty($_POST) === false){
    $username = $_POST['username'];
    $password = $_POST['password'];

    if (empty($username) === true || empty($password) === true) {
        $errors[] = 'You need to enter a username and password.';
    } else if (user_exists($username) === false) {
        $errors[] = 'Username does not exists. Have you registered?';
    } else if (user_active($username) === false) {
        $errors[] = 'Your account is not activated. Please check your email!';
    } else {

    }

    print_r($errors);
}
?>

这是函数“user_exists($username)”的代码

<?php


function user_exists($username) {
    $username = sanitize($username);
    return (mysql_result(mysql_query("SELECT COUNT('user_id') FROM 'users' WHERE 'username' = '".$username."'"), 0) === 1) ? true : false;
}

function user_active($username) {
    $username = sanitize($username);
    return (mysql_result(mysql_query("SELECT COUNT('user_id') FROM 'users' WHERE 'username' = '".$username."' AND 'active' = 1"), 0) === 1) ? true : false;
}
?>

清理函数:

<?php
function sanitize($data) {
    return mysqli_real_escape_string($data);
}
?>

这是我的问题:

当我使用虚拟信息登录时 - 用户名;密码(通过 phpmyadmin 进行 md5 散列)如果显示错误:

'Username does not exists. Have you registered?'

我试过使用不同的数据库,不同的用户..没有任何效果..帮助!

最佳答案

对列名和表名使用反引号,而不是引号。

"SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '".$username."'")

return (mysql_result(mysql_query("SELECT COUNT('user_id') 
FROM 'users' WHERE 'username' = '".$username."'"), 0) === 1) ? true : false;
}

mysql_results 返回单元格或 false,因此永远不会达到条件 ===1 以上。

Docs

Returns the contents of one cell from a MySQL result set on success, or FALSE on failure.

return (mysql_result(mysql_query("SELECT COUNT('user_id') 
FROM 'users' WHERE 'username' = '".$username."'"), 0) == false) ? false: true;
}

您还连接了 mysql 并在 sanitize 函数中使用了 mysqli_real_escape_string。不要混合它们。

关于php 没有从数据库中获取用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20433465/

相关文章:

javascript - 通过 onclick 事件调用 php 函数?

php - 检查 MySQL 中的日期范围

mysql - 查找两个选择查询的交集

mysql - 计算sql请求错误

php - 如何获得准确的浏览器名称和版本?

php - Laravel orderby 分数/日期(作为分数)

php - 转到编辑页面时选中复选框 - PHP HTML

mysql - 如何检查 INSERT 在存储函数中是否运行良好?

javascript - Uncaught ReferenceError : $this is not defined ajax

php - CodeIgniter,查询 View 中仅显示1条记录