当我编写这段代码时,我会得到一个致命的错误,声明:
在第27行的C:\wamp\www\demo.php中对非对象调用成员函数查询()。
我怎样才能消除这个错误?
<!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>发布于 2014-05-30 19:07:22
if ($mysqli = false)这一行是将布尔值false分配给$mysqli。将其更改为:if ($mysqli == false)或(更好) if ($mysqli === false)。
为了防止将来发生此错误,我建议您使用尤达会议。换言之:
if (false === $mysqli)发布于 2014-05-30 19:10:24
它是:
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)) {发布于 2014-05-30 19:13:53
在您的代码中检查
if($mysqli = false)当你想要的
if($mysqli == false)但是,如果存在连接问题,这将无法工作,因为您仍然会得到mysqli实例。你在找
if($mysqli->connect_error)有关更多信息,请参见这里
https://stackoverflow.com/questions/23961662
复制相似问题