我搜索了这个网站,寻找可能的答案以及搜索Google并且没有运气。我有很少的PHP技能,并一直在Udemy.com上按照教程制作一个PHP聊天系统。我差不多1/2,我得到以下错误。我现在已经浏览了3次视频,以确保我没有错过任何内容或输入任何错误。
我一直收到此错误:
致命错误:在第25行的C:\ xampp \ htdocs \ websites \ portfolio \ project_examples \ chat_system_AJAX_& _PHP \ index.php中调用boolean上的成员函数fetch()
我认为这与这一行有关:
<?php endwhile;?>
以下是index.php的代码
<?php
include 'db.php';
?>
<!DOCTYPE html>
<html>
<head>
<title>Chat System in PHP</title>
<link rel="stylesheet" type="text/css" href="assets/css/styles.css" media="all">
</head>
<body>
<div id="container">
<div id="chat_box">
<?php
$query = "SELECT * FROM portfolio_chat_system_AJAX_PHP ORDER BY id DESC";
$run = $con->query($query);
while($row = $run -> fetch_array()) :
?>
<div id="chat_data">
<span class="username"><?php echo $row['name']; ?></span> :
<span class="message_text"><?php echo $row['message']; ?></span>
<span class="message_time"><?php echo $row['date']; ?></span>
</div>
<?php endwhile;?>
</div>
<form method="post" action="index.php">
<input type="text" name="name" placeholder="enter name here"/>
<textarea name="enter message" placeholder="enter message here"></textarea>
<input type="submit" name="submit" value="Send">
</form>
</div>
</body>
</html>
以下是连接到位于&#39; db.php&#39;中的数据库的代码: (我已经取出了这个问题的主持人,用户和传递信息。)
<?php
$host = "";
$user = "";
$pass = "";
$db_name = "portfolio_chat_system_AJAX_PHP";
$con = new mysqli ($host, $user, $pass, $db_name);
?>
非常感谢任何帮助。请记住我是初学者,需要解答答案。提前谢谢!
答案 0 :(得分:-1)
看起来你正在使用mysqli。查询失败,返回false
并将其分配给$run
。
$run = $con->query($query);
您无法在布尔基元上调用fetch_array()
,它是mysqli_result
类的一种方法,如果查询成功,将会返回该方法。
在将查询用作对象之前,您应该检查查询是否成功(非假):
if($run != false) {
while($row = $run -> fetch_array())
...
修复查询失败的问题。您可以从连接对象$con
http://php.net/manual/en/mysqli.query.php获取有关失败原因的详细信息:echo $con->error;
根据您在OP中的评论,您的查询应该是:
$query = "SELECT * FROM chat ORDER BY id DESC";