it-swarm.com.de

Rufen Sie eine Memberfunktion fetch_assoc () auf boolean in <Pfad> auf

Ich erhalte den obigen Fehler, wenn der folgende Code ausgeführt wird, um Buchungen aus einer Datenbank anzuzeigen.

    <?php

            $servername = "localhost";
            $username = "*********";
            $password = "********";
            $dbname = "thelibr1_fyp";


            // Create connection
            $conn = new mysqli($servername, $username, $password, $dbname);
            // Check connection
            if ($conn->connect_error) {
                die("Connection failed: " . $conn->connect_error);
            } 

            $sql = "SELECT id, tablename, numseats, person FROM confirms";
            $result = $conn->query($sql);
            ?>

            <table id="Confirms" border ="2" style="length:900px;width:350px;">
                  <thead>
                    <tr style= "background-color: #A4A4A4;">
                      <td>Booking ID:</td>
                      <td>Table No.:</td>
                      <td>No. of Seats:</td>
                      <td>Person:</td>
                    </tr>
                  </thead>
                <tbody>
                    <?php
                      while(($row = $result->fetch_assoc()) !== null){
                        echo
                        "<tr>
                          <td>{$row['id']}</td>
                          <td>{$row['tablename']}</td>
                          <td>{$row['numseats']}</td>
                          <td>{$row['person']}</td>
                        </tr>\n";
                      }
                    ?>
                </tbody>
            </table>

Ich habe die Fehlermeldung erst erhalten, als ich mit dem Hosting begonnen habe. Auf meinem PC funktioniert das einwandfrei. Und die Datenbankverbindung funktioniert auch gut.

10
dhool

Die query -Methode kann anstelle einer Ergebnismenge false zurückgeben, falls ein Fehler auftritt. Deshalb erhalten Sie den Fehler beim Aufruf der Methode fetch_assoc , der offensichtlich nicht vorhanden ist, wenn $ result false ist.

Das heißt, Sie haben einen Fehler in Ihrer SELECT-Anweisung. Um diesen Fehler anzuzeigen, führen Sie folgende Schritte aus:

 $result = $conn->query($sql) or die($conn->error);

Möglicherweise haben Sie eine falsche Schreibweise für den Tabellennamen oder einen Spaltennamen. Vielleicht haben Sie beim Wechsel zum Host die Tabelle nicht korrekt erstellt und dort einen Schreibfehler gemacht.

Sie sollten tatsächlich den gleichen Fehler sehen, wenn Sie dieselbe Abfrage über phpAdmin ausführen.

Ersetzen Sie auch diese Zeile:

while(($row = $result->fetch_assoc()) !== null){

nur mit:

while($row = $result->fetch_assoc()) {

Sie können dies auch zum Debuggen hinzufügen:

echo "number of rows: " . $result->num_rows;
15
trincot

Dieser Fehler tritt normalerweise auf, wenn Tabellen in der Abfrage nicht vorhanden sind. Überprüfen Sie einfach die Schreibweise der Tabelle in der Abfrage, und es wird funktionieren.

4
ASammour

OK, ich habe gerade diesen Fehler behoben.

Dies passiert, wenn ein Fehler in der Abfrage vorliegt oder die Tabelle nicht existiert.

Versuchen Sie, die Abfrage buy zu debuggen, indem Sie sie direkt auf phpmyadmin ausführen, um die Gültigkeit der mysql-Abfrage zu überprüfen

0
Shoaib

sehen Sie sich den folgenden Code an.

 $query="select * from articles";
  $result=$conn->query($query);
  $row = $result->fetch_assoc();
  if($row)
  {
   echo $row['content'];
  }
 echo "no results founded";
   ?>
0
Mahdi Shahpuri