为什么我的函数不能用PHP?

为什么我的函数不能用PHP?,php,Php,嘿,为什么我的函数不工作这里是php代码,它是用mysql\u connect编写的: function isUserLoggedIn() { global $conn; $sql = "SELECT user_id, password FROM user WHERE user_id='" . fixstr($loggedInUser->user_id) . "' AND p

嘿,为什么我的函数不工作这里是php代码,它是用mysql\u connect编写的:

function isUserLoggedIn() {
    global $conn;
    $sql = "SELECT user_id, password FROM user
            WHERE
            user_id='" . fixstr($loggedInUser->user_id) . "' 
            AND 
            password='" . fixstr($loggedInUser->password) . "' 
            AND
            active = 1
            LIMIT 1";

    $res = mysql_query($sql);
    $rs = mysql_fetch_array($res);  

    if($loggedInUser($res) == NULL)
    {
        return false;
    }
    else
    {
        //Query the database to ensure they haven't been removed or possibly banned?
        if(returns_result($sql) > 0)
        {
                return true;
        }
        else
        {
            //No result returned kill the user session, user banned or deleted
            $loggedInUser->userLogOut();

            return false;
        }
    }
}

连接确实返回活动窗口,但无法连接到任何函数。有人知道我的代码不工作的原因吗?

$loggedInUser
不在范围内

您可以执行以下操作之一:

  • 通过方法参数注入
    $loggedInUser

    函数isUserLoggedIn($loggedInUser)
  • 本地构造或定义
    $loggedInUser

    例如,
    $loggedInUser=(新LoggedInUserFactory)->buildLoggedInUser()
  • 声明
    global$loggedInUser

除了编写的内容之外,还不知道$conn是否有效,如果($loggedInUser($res)==NULL)应该是
$rs
而不是
$res
?我不知道函数定义,所以我不能确定,但看起来更可能是这样的

嘿!不知道,但我建议你去看看。旁注:停止使用不推荐的
mysql.*
函数。请改用MySQLi或PDO。
$loggedInUser
不是全局函数,因此函数无法访问它。
if(返回结果($sql)>0)
中的
$sql
也可以替换为
$rs
,这样更有意义:)