2012-05-14 82 views
0

我正在嘗試解決此問題。但無法做到這一點。請幫助在php中出現致命錯誤

我想在我的數據庫,查看所有的記錄,但獲得「致命錯誤:調用一個成員函數查詢()非對象....上」,其指向

if ($result = $mysqli->query("SELECT ProductName, Description, Price, Size FROM Products ORDER BY ProductID")) 

這裏是我的完整代碼

<?php 

         include('db_connect.php'); 

**$mysqli = new mysqli("localhost", "netelmbn", "password", "netelmbn"); 
         if ($mysqli->connect_errno) { 
    printf("Connect failed: %s\n", $mysqli->connect_error); 
    exit(); 
}** 


         if ($result = $mysqli->query("SELECT ProductName, Description, Price, Size FROM Products ORDER BY ProductID")) 
         { 

           if ($result->num_rows > 0) 
           { 

             echo "<table border='1' cellpadding='10'>"; 


             echo "<tr><th>ProductID</th><th>ProductName</th><th>Description</th><th>Price</th><th>Size</th></tr>"; 

             while ($row = $result_fetch_object()) 
             { 

               echo "<tr>"; 
               echo "<td>" . $row->ProductID . "</td>"; 
               echo "<td>" . $row->ProductName . "</td>"; 
               echo "<td>" . $row->Description . "</td>"; 
               echo "<td>" . $row->Price . "</td>"; 
               echo "<td>" . $row->Size . "</td>"; 
               echo "<td><a href='records.php?ProductID=" . $row->ProductID . "'>Edit</a></td>"; 
               echo "<td><a href='delete.php?ProductID=" . $row->ProductID . "'>Delete</a></td>"; 
               echo "</tr>"; 
             } 
             echo "</table>"; 
           } 
           else 
           { 
             echo "No results to display!"; 
           } 
         } 
         else 
         { 
           echo "Error: " . $mysqli->error; 
         } 


         $mysqli->close(); 

       ?> 
+3

只是'var_dump($ mysqli);'並找出它爲什麼不是一個對象。這可能是'假'btw。 –

+0

嘗試定義全局結果$並檢查。 –

回答

1

你必須有一些數據庫類,檢查你的代碼。

$mysqli = new Database(); 
$mysqli->connect(); 

您執行查詢之前:

$result = $mysqli->query("SELECT ProductName, Description, Price, Size FROM Products ORDER BY ProductID"); 

正如你所看到的,查詢先走,然後連接資源。 >>所以,先連接。

+0

是的,我做到了。但現在我得到了致命的錯誤($ row = $ result_fetch_object()) – user1321271

+0

你有錯誤 - > $ result_fetch_object() –

1

您需要首先實例化$ mysqli的obect。你也沒有在任何地方打開數據庫。

你所需要的,至少,是這樣的:

$mysqli = new ClassName(/*some parameters here*/); 

$mysqli->database_open(/* some parameters here */); // or something like this, look at the clas definition 
+0

我沒有得到什麼參數那裏在mysqli = new ClassName(...) :( – user1321271

+0

我編輯了我的代碼,PLZ看看現在我得到的結果作爲所有的標題,但一個錯誤致命的錯誤:函數名必須是一個字符串,並指向while($ row = $ result_fetch_object()) – user1321271

+0

嗨,已解決。感謝您的幫助。我的while循環出現語法錯誤 – user1321271