2012-03-28 86 views
0

下面的方法,它的工作,但保留打印的警告也,即時通訊相當新的面向對象編程,所以我想知道到底爲什麼。mysqli_free_result(),並返回警告

我做了一些谷歌搜索,似乎喜歡它的我混的程序與OOP即給予警告,以及從我在其他地方至少讀的答覆。

代碼:

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; 
} 

警告:

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

我希望有人脫落這方面的一些光如果可能的話。

+1

$行不是結果,$ mysqli_result是結果 – 2012-03-28 13:50:53

+0

可能重複[警告:mysql_fetch_ *期望參數1是資源,布爾給定錯誤](http://stackoverflow.com/questions/11674312/warning -mysql取入預計參數-1將要資源 - 布爾給出錯誤) – 2012-08-02 13:03:37

回答

1

您正在使用面向對象的方式MySQLi ,你不能使用程序的功能與它 不正確,請編輯。你應該這樣做:

$mysqli_result->free() 

......改爲。

即使您正在使用的程序的做法,你做了什麼不正確,因爲fetch_row()返回一個數組,並mysqli_free_result()所期望的結果資源 - 你需要做的:

mysqli_free_result($mysqli_result); 

...但對於你的代碼,第一個例子就是你想要的。

編輯

事實上,經過測試,可以在實際上使用第二個選項爲好。但儘管如此,第一個選項是爲您的代碼最合適的。

+0

砸,謝謝^ _ ^ – cosmicsafari 2012-03-28 14:08:27