2016-04-03 17 views
0

Wie kann ich diesen Code ändern, damit der obige Fehler nicht angezeigt wird? HierSchwerwiegender Fehler: Aufruf einer Memberfunktion fetch_array() auf einem Nichtobjekt

ist der vollständige Fehler:

Fatal error: Call to a member function fetch_array() on a non-object in /home/bestc165/public_html/opinuo.com/stream.php on line 10

<?php 
$link = mysqli_connect('localhost', 'bestc165_opinuo', 'opinuo'); 

$sql_string = 'SELECT * FROM debates LIMIT 2 order by ts '; 

$result = mysqli_query($link,$sql_string); 

while($row = $result->fetch_array()) 
{ 
    $rows[] = $row; 
} 

foreach($rows as $row) 
{ 
    $name = $row['name']; 
    $text = $row['text']; 
?> 

<h2><?php echo $name;?></h2> 
<p><?php echo $text;?></p> 

<?php 

} 

?> 
+1

Ersetzen Sie 'fetch_array()' mit 'fetch (PDO :: FETCH_ASSOC)' –

+0

Danke, aber ich habe immer noch einen Fehler: Schwerwiegender Fehler: Aufruf einer Memberfunktion fetch() auf einem Nicht-Objekt in/home/bestc165 /public_html/opinuo.com/stream.php on line 10 –

+1

ein Argument fehlt in mysqli_connect-Funktion –

Antwort

1

LIMIT kommt nach ORDER BY

Ändern Sie Ihre Anfrage an

$sql_string = 'SELECT * FROM debates ORDER BY ts LIMIT 2'; 

mysqli_query kehrt FALSE bei einem Fehler, so dass Ihre $result ist kein Objekt aber ein boolean also Ihr Fehler.

aktualisieren

Wie in den Kommentaren erwähnt, stellen Sie sicher, den Datenbanknamen in der Verbindung

$link = mysqli_connect('host', 'username', 'password', 'databaseName'); 

Oder mysqli_select_db

verwenden
mysqli_select_db($link, "databaseName"); 
+0

Vielen Dank, aber es gibt mir immer noch den gleichen Fehler. Irgendwelche Vorschläge? Vielen Dank!! –

+0

Stellen Sie zuerst sicher, dass Sie erfolgreich mit der Datenbank verbunden sind und keine Spaltennamen falsch geschrieben haben. –

+0

Wie mache ich $ result ein Objekt? Vielen Dank!! Und ich bin mit der Datenbank verbunden und habe nichts falsch geschrieben (doppelt überprüft). –

0
diese

Nutzung zu übergeben:

//Other code here 

$result = mysqli_query($link, $sql_string); 

while($row = mysqli_fetch_assoc($result)) 
{ 

?> 

    <h2><?php echo $row['name'];?></h2> 
    <p><?php echo $row['text'];?></p> 

<?php 

} 

?> 

Es ist nicht notwendig, extra loop zu verwenden, um die Ausgabe anzuzeigen.

Verwandte Themen