【问题标题】:PHP Mysql query is returning null [closed]PHP Mysql查询返回null [关闭]
【发布时间】:2013-03-14 13:37:53
【问题描述】:

我有一个简单的 PHP 登录功能。在这个函数中,我通过一个 MySQL 查询来检查用户是否存在,该查询从表中选择用户名并计算返回的行数。当我知道表包含用户名这一事实时,查询返回 null 时遇到问题。

这是我的代码。

function login($user_name, $password) {
    $db1 = new DB_CONNECT();        
    $db1->connect();

    $query = "SELECT user_name FROM users WHERE user_name = '$user_name'";
    $result = $db1->makeAQuery($query);

    if (mysql_num_rows($result) == 1) {
        //check the password
    }
    else {
        //no user exist 
    }
}


我知道传入的用户名和密码是可以的,我在将它们发送到函数之前修剪任何空格。我知道数据库连接正在工作,因为它适用于我的其余 PHP 代码。我得到的唯一错误是提到 mysql_num_rows “期望参数 1 是资源,给定 null”

数据库类

class DB_CONNECT {
    function connect() {
        // import database connection variables
        require_once __DIR__ . '/db_config.php';
        $con = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die(mysql_error());

        // Selecing database
        mysql_select_db(DB_DATABASE, $con) or die(mysql_error());
    }
    function makeAQuery($query) {
        $result = mysql_query($query) or die(mysql_error());        
    } 
    function close() {
       // closing db connection
    mysql_close();
    }
}

【问题讨论】:

标签: php mysql


【解决方案1】:

这应该可行:

"SELECT user_name FROM users WHERE user_name = '".$user_name."'";

还有

改变这个:

function makeAQuery($query) {
    $result = mysql_query($query) or die(mysql_error());        
} 

function makeAQuery($query) {
    $result = mysql_query($query) or die(mysql_error());      
    return   $result;
} 

【讨论】:

  • Return 语句做到了。毕竟,我忘记了一个简单的陈述。
【解决方案2】:

也许尝试删除查询中 = 之间的空格。

"SELECT user_name FROM users WHERE user_name='$user_name'"

您的脚本可能返回 null,因为查询无法运行。

【讨论】:

  • 我可以做到WHERE user_name = many_space_here '$user_name',它会工作
  • 啊抱歉,我忘了 MySQL 不关心空格。
  • 有无空格,都一样
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-08
  • 2021-01-14
  • 1970-01-01
  • 2018-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多