2016-02-08 34 views
0

我搜索了這個網站尋找可能的答案,同時搜索谷歌並沒有運氣。我有最小的PHP技能,並且一直在遵循一個教程來在Udemy.com上創建一個php聊天系統。我大約有一半的方式,但我得到以下錯誤。爲了確保我沒有錯過任何東西或輸入任何錯誤,我現在已經瀏覽了三次視頻。致命錯誤:調用一個成員函數fetch()布爾在index.php上的第25行

我不斷收到此錯誤:

Fatal error: Call to a member function fetch() on boolean in C:\xampp\htdocs\websites\portfolio\project_examples\chat_system_AJAX_&_PHP\index.php on line 25

我認爲它有事情做這一行:

<?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> 

這裏是連接到位於「db.php中」數據庫的代碼: (我已經採取了主機,用戶,並通過信息這個問題。)

<?php 

    $host = ""; 
    $user = ""; 
    $pass = ""; 
    $db_name = "portfolio_chat_system_AJAX_PHP"; 

     $con = new mysqli ($host, $user, $pass, $db_name); 


?> 

任何幫助是極大的讚賞。請記住我是初學者,需要解答的答案。先謝謝你!

+0

所以你的數據庫和表對象$conhttp://php.net/manual/en/mysqli.query.php試試看你能得到它爲什麼從你的連接失敗細節被命名爲'portfolio_chat_system_AJAX_PHP'? – AbraCadaver

+0

數據庫名稱是「portfolio_chat_system_AJAX_PHP」,表格是「聊天」。 我知道這是一個類似的問題....但我一直無法通過閱讀其他類似問題的答案來解決我的問題。 –

+0

'SELECT * FROM chat ORDER BY id DESC' – AbraCadaver

回答

-1

看起來像你使用mysqli。查詢失敗,返回false並將其分配給$run

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

你不能調用一個基本布爾fetch_array(),這是如果他們查詢是否成功,這將返回mysqli_result類的方法。

  1. 你應該使用它作爲一個對象之前檢查查詢(不假)的成功:

    if($run != false) { 
        while($row = $run -> fetch_array()) 
        ... 
    
  2. 修正導致失敗的查詢。 echo $con->error;

基於在OP您的意見,您的查詢也許應該是::

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

我是初學者,我不太瞭解php。你能解釋一下如何解決它?在我一直遵循的教程中,它對他來說非常合適。 –

+0

@AlissaIsenberg查看我的文章更新 – Ray

+0

修復了它!謝謝!! –

相關問題