Warum erhalte ich eine Fehlermeldung, wenn ich eine Buchung aus der Datenbank erhalte? [duplicate]

Lesezeit: 4 Minuten

Benutzer-Avatar
dhool

Ich erhalte den obigen Fehler, wenn ich den folgenden Code ausführe, 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 den Fehler erst erhalten, als ich anfing, ihn live zu hosten. Es funktioniert gut auf meinem PC, die Datenbankverbindung funktioniert auch gut.

  • Ja auch probiert und gleiches Problem.

    – Dhol

    27. Februar 2016 um 11:28 Uhr

  • Ich habe Ihren Code ausprobiert, er funktioniert bei mir, überprüfen Sie Ihre Datenbank und Abfrage?

    – Niklesh Raut

    27. Februar 2016 um 11:29 Uhr


  • Welche Ausgabe erhalten Sie nach $result = $conn->query($sql); print_r($ergebnis);

    – Niklesh Raut

    27. Februar 2016 um 11:30 Uhr


  • Anscheinend ist Ihre Abfrage fehlgeschlagen und der Abfrageaufruf hat ein boolesches FALSE zurückgegeben.

    – Hardik Solanki

    27. Februar 2016 um 11:31 Uhr

  • Wenn ich diese Abfrage ausführe, $conn->query($sql); print_r($ergebnis); Ich bekomme keine Ausgabe. Wenn Sie sagen, überprüfen Sie Ihre Datenbank, was meinen Sie damit? Ich meine, ich habe andere funktionale Probleme, also könnte es durchaus die Datenbank sein, aber was könnte es sein? Alle diese Funktionen, mit denen ich Probleme habe, funktionieren, wenn sie lokal mit Xampp gehostet werden

    – Dhol

    27. Februar 2016 um 11:36 Uhr

Benutzer-Avatar
Trinkot

Das Anfrage Methode kann zurückkehren false anstelle einer Ergebnismenge, falls ein Fehler auftritt. Deshalb bekommst du den Fehler auf der fetch_assoc Methodenaufruf, der wann offensichtlich nicht existiert $ergebnis ist false.

Dies bedeutet, dass Sie einen Fehler in Ihrer SELECT-Anweisung haben. Um diesen Fehler anzuzeigen, gehen Sie wie folgt vor:

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

Höchstwahrscheinlich haben Sie eine falsche Schreibweise für den Tabellennamen oder einen Spaltennamen. Vielleicht haben Sie beim Wechsel zum Host diese Tabelle nicht richtig erstellt und dort einen Rechtschreibfehler gemacht.

Sie sollten tatsächlich denselben 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;

  • OK, das hat geholfen, dass ich auf den falschen Datenbanknamen verlinkt habe, das behoben, aber immer noch dasselbe, da keine Ausgabe ausgegeben wird. Das “or die($conn->error)” gibt jetzt nichts zurück, aber ich bin verwirrt darüber, warum keine Einträge angezeigt werden.

    – Dhol

    27. Februar 2016 um 12:48 Uhr


  • Was ist die Ausgabe, wenn Sie SELECT direkt in phpAdmin ausführen (stellen Sie sicher, dass Sie sich auf dem richtigen Server befinden)?

    – Trinkot

    27. Februar 2016 um 12:52 Uhr


  • Dies bedeutet, dass Sie einen Fehler in Ihrer SELECT-Anweisung haben. Das rettet mein Leben.

    – Siraj Alam

    7. April 2018 um 11:09 Uhr


  • “Höchstwahrscheinlich haben Sie eine falsche Schreibweise für den Tabellennamen oder einen Spaltennamen.” Dank dafür

    – Marco Floriano

    21. Dezember 2019 um 14:51 Uhr

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.

OK, ich habe diesen Fehler gerade behoben.

Dies geschieht, wenn in der Abfrage ein Fehler auftritt oder die Tabelle nicht vorhanden ist.

Versuchen Sie, die Abfrage zu debuggen, indem Sie sie direkt auf phpmyadmin ausführen, um die Gültigkeit der mysql-Abfrage zu bestätigen

Benutzer-Avatar
Vivek Sharma

Bitte verwenden Sie die if-Bedingung mit While-Schleife und versuchen Sie es.

z.B.

if ($result = $conn->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {

    }
    /* free result set */
    $result->free();
}

Sie müssen die php.ini-Konfigurationsdatei auf dem Server Ihres Hostanbieters aktualisieren, vertrauen Sie mir, höchstwahrscheinlich ist an Ihrem Code nichts falsch. Ich habe fast anderthalb Monate gebraucht, um zu erkennen, dass die meisten Hosting-Server nicht auf dem neuesten Stand der php.ini-Dateien sind, z. php 5.5 oder höher, glaube ich.

1018700cookie-checkWarum erhalte ich eine Fehlermeldung, wenn ich eine Buchung aus der Datenbank erhalte? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy