![](/img/trans.png)
[英]Getting Fatal error: Call to a member function query() on a non-object in C:\wamp\www\quotes\paginator.php on line 32
[英]Fatal error: Call to a member function query() on a non-object in C:\wamp\www\demo.php on line 27
當我編寫此代碼時,出現一個致命錯誤,指出:
在第27行的C:\\ wamp \\ www \\ demo.php中的非對象上調用成員函數query()。
如何擺脫這個錯誤?
<!DOCTYPE html>
<html>
<body>
<?php
$searchtype = $_POST["searchtype"];
$searchterm = $_POST["searchterm"];
$searchterm = trim($searchterm);
if(!$searchtype && !$searchterm) {
echo "You have not entered search details.";
}
$mysqli = new mysqli("localhost","root","","books");
if($mysqli = false) {
echo "ERROR:Sorry,Could Not Connect To The Database.";
} else {
echo "Connected To Database";
}
$sql = "SELECT author FROM books";
if($mysqli -> query($sql)) {
echo "Connected To Tables";
} else {
echo "Cannot connect tot tables right now.";
}
?>
</html>
if ($mysqli = false)
這行將布爾值false
分配給$mysqli
。 將其更改為: if ($mysqli == false)
或(更好) if ($mysqli === false)
。
為了避免將來出現此錯誤,建議您使用Yoda約定 。 換一種說法:
if (false === $mysqli)
它是:
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
按照http://www.php.net/manual/en/mysqli.query.php
另外查詢執行需要更改為
if($mysqli->query($sql)) {
在您的代碼中檢查
if($mysqli = false)
當你想要的是
if($mysqli == false)
但是,如果出現連接問題,這將不起作用,因為您仍將獲得一個mysqli實例。 您正在尋找
if($mysqli->connect_error)
在這里查看更多信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.