我試圖使用mysqli-> fetch_row()(或fetch_object(),fetch_array())來獲取結果,但是當我去跑在運行時它給了我下面的錯誤代碼:
致命錯誤:調用一個成員函數fetch_row()在...非對象上線23
在下面的代碼中,這樣做的var是$結果。 $ user和$ password從另一個.php文件中獲取這個文件所包含的值,所以目前並不重要。現在糾正我,如果我錯了,但如果$結果正在設置= $ db-> query($ query)那麼是不是應該繼承$ db的屬性又名mysqli類?
class mySQLHelper{
public function checkPass($user, $pass){
global $db;
$db = new mysqli();
$db->connect('localhost', 'root', '', 'mydb');
if (mysqli_connect_errno()){
echo 'Can not connect to database';
echo mysqli_connect_errno(). mysqli_connect_error();
exit;
return false;
}
$query = "SELECT user, password FROM Users WHERE user = $user AND password = $pass " ;
echo $query;
$results = $db->query($query);
while ($row = $results->fetch_row()){
echo htmlspecialchars($row->user);
echo htmlspecialchars($row->password);
}
$results->close();
$url = 'http://'. $_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/";
if(!$results){
// mysqli_close($db);
// header("Location:.$url.login.php&msg=1");
}
else{
// mysqli_close($db);
// header("Location:.$url.featured.php");
}
}
}
你需要引用你的變量在SQL語句中包含。或者,由於您使用的是mysqli,因此將它們添加爲綁定參數 - 這更安全。 – andrewsi
我以爲是插入語句。 – VinceOmega
$結果可能是錯誤的,因爲查詢中有錯誤。 –