2012-03-28 14 views
0

Die folgende Methode macht ihre Arbeit, aber druckt weiterhin eine Warnung, ich bin ziemlich neu in OOP, also würde ich gerne genau wissen warum.mysqli_free_result(), Rückgabe einer Warnung

Ich habe etwas Googeln gemacht und es scheint, wie es mir procedural mit OOP mischen, die die Warnung gibt, gut von den Antworten, die ich mindestens woanders gelesen habe.

Der Code:

function __construct(){ 
    global $connection; 

    $mysqli_result=$connection->query("select module from modules"); 
    while($row=$mysqli_result->fetch_row()){ 
     $this->whitelist[]=$row[0]; 
    } 
    mysqli_free_result($row); 
    return; 
} 

Die Warnung:

mysqli_free_result() expects parameter 1 to be mysqli_result, null given in..... 

würde ich schätzen jemand etwas Licht auf diese wenn möglich zu vergießen.

+1

$ Zeile ist nicht das Ergebnis, $ mysqli_result ist das Ergebnis –

+0

möglich Duplikat von [Warnung: mysql_fetch_ * erwartet Parameter 1 als Ressource, boolescher gegebener Fehler] (http://stackoverflow.com/questions/11674312/warning -mysql-fetch-erwartet-Parameter-1-zu-Ressource-boolean-gegeben-Fehler) –

Antwort

1

Sie verwenden MySQLi in einer objektorientierten Art und Weise, und Sie können nicht die verfahrenstechnischen Funktionen mit ihm falsch verwenden, finden Sie bearbeiten. Sie würden tun:

$mysqli_result->free() 

... stattdessen.

Auch wenn Sie den prozeduralen Ansatz verwendet haben, was Sie getan haben, ist falsch, da fetch_row() ein Array zurückgibt, und mysqli_free_result() würde das Ergebnis Ressource erwarten - Sie würden tun müssen:

mysqli_free_result($mysqli_result); 

... aber Für Ihren Code ist das erste Beispiel das, was Sie wollen.

EDIT

Eigentlich nach dem Testen Sie kann in der Tat als auch die zweite Option. Aber die erste Option ist die beste für Ihren Code.

+0

Smashen, danke^_ ^ – cosmicsafari

Verwandte Themen