2012-03-28 9 views
0

次のメソッドはその仕事をしますが、警告を印刷し続けます。私はかなりOOPに新しいので、なぜ正確に知りたいのですか?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は結果として –

+0

となります。[警告:mysql_fetch_ *は、パラメータ1がリソースであると想定し、ブール値のエラーが発生しました](http://stackoverflow.com/questions/11674312/warning -mysql-fetch-expects-parameter-1-to-be-resource-boolean-given-error) –

答えて

1

あなたがオブジェクト指向のファッションでMySQLi を使用していて、 間違って、編集を見ることで、手続きの機能を使用することはできません。あなたはそうするでしょう:

$mysqli_result->free() 

...代わりに。

あなたが手続き的なアプローチを使用してfetch_row()は配列を返し、mysqli_free_result()は結果リソースを期待するので、何を行っていることは間違っていたとしても - あなたがする必要があるでしょう:

mysqli_free_result($mysqli_result); 

...しかし、あなたのコードでは、最初の例があなたが望むものです。

EDIT

実際には、テストの後、あなたが実際には、同様2番目のオプションを使用することができます。しかし、最初の選択肢はあなたのコードに最適です。

+0

スマッシング、ありがとう^ _ ^ – cosmicsafari