簡體   English   中英

致命錯誤:在第27行的C:\\ wamp \\ www \\ demo.php中的非對象上調用成員函數query()

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM