我在一个函数中有一个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语句时,它可以工作。但不在函数内部。
答案 0 :(得分:2)
如果$mysqli
是您在某处定义的全局,则需要将其拉入函数的范围:
function isloggedin($getcookiedata) {
global $mysqli;
...
}