函数内部的Mysql语句不起作用

时间:2011-07-09 10:15:47

标签: php mysql

我在一个函数中有一个MySQL语句,但不知何故它不起作用。我收到以下错误:

  

致命错误:调用成员函数   prepare()在非对象上   第7行的D:\ xampp \ test.php

function isloggedin($getcookiedata) {
    $data = explode("|", $getcookiedata);
    $userid = $data[0];
    $md5password = $data[1];

    $sql = "SELECT user_id, username, email, newsletter, user_group FROM users WHERE user_id = ? AND md5password = ?";
    $stmt = $mysqli->prepare($sql);
    $stmt->bind_param('ss', $userid, $md5password);
    $stmt->execute();
    $stmt->bind_result($r_userid, $r_username, $r_email, $r_newsletter, $r_user_group);
    $stmt->store_result();
    $checker = $stmt->num_rows;
    $stmt->fetch();
    $stmt->close(); 
}

当我在函数外部执行SQL语句时,它可以工作。但不在函数内部。

1 个答案:

答案 0 :(得分:2)

如果$mysqli是您在某处定义的全局,则需要将其拉入函数的范围:

function isloggedin($getcookiedata) {
    global $mysqli;
    ...
}

请参阅PHP - Variable scope