致命错误:在第25行

时间:2016-02-08 22:10:44

标签: php mysql

我搜索了这个网站,寻找可能的答案以及搜索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);


?>

非常感谢任何帮助。请记住我是初学者,需要解答答案。提前谢谢!

1 个答案:

答案 0 :(得分:-1)

看起来你正在使用mysqli。查询失败,返回false并将其分配给$run

 $run = $con->query($query);

您无法在布尔基元上调用fetch_array(),它是mysqli_result类的一种方法,如果查询成功,将会返回该方法。

  1. 在将查询用作对象之前,您应该检查查询是否成功(非假):

    if($run != false) {
       while($row = $run -> fetch_array())
      ...
    
  2. 修复查询失败的问题。您可以从连接对象$con http://php.net/manual/en/mysqli.query.php获取有关失败原因的详细信息:echo $con->error;

  3. 根据您在OP中的评论,您的查询应该是:

        $query = "SELECT * FROM chat ORDER BY id DESC";