0

現在mysqli、データベースへの接続を作成するために使用しています。私のホスト サーバーは PDO 接続をサポートしていないため、mysqli を使用しています。接続を確立すると、次のエラーが発生します。

Fatal error: Call to undefined method mysqli_result::fetchAll()

fetchAll()mysqli の一部ではありませんか?

PHP DBに接続

$mysqli = new mysqli('localhost', 'user', 'password', 'database');

if (mysqli_connect_error()) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}
else {
echo ('Success... '); 
}

    $sql = "SELECT * 
            FROM `categories`
            WHERE `master` = 0";
    $statement = $mysqli->query($sql);
    $list = $statement->fetchAll();
4

4 に答える 4

1

いいえ: ではありませfetch_all()fetchAll()

于 2012-07-21T19:40:14.387 に答える
1

fetch_all()の代わりに、おそらく が必要ですfetchAll()

mysqli_result::fetch_all();
PDO::fetchAll();

手入力

于 2012-07-21T19:40:39.183 に答える
0

ドキュメントによると、それはmysqlndでのみ利用可能ですが、mysql fetch all ページの最初のコメントは、同じことを行う関数を作成する方法を説明しています。

http://php.net/manual/en/mysqli-result.fetch-all.php

また、fetchAll ではなく fetch_all です

于 2012-07-21T19:40:24.137 に答える
0

を呼び出すと、オブジェクト$mysqli->query($sql)が返されるか、エラーの場合は値が返されます。あなたのクエリは成功せず、値 false を返すと思います。もちろん、これを要求するとエラー メッセージが表示されます。mysqli_resultfalsefalse->fetchAll()

そのため、最初にクエリが成功したかどうかを確認する必要があり (===演算子を使用して を確認しfalseます)、その後、クエリの結果を操作できます。

PSそれが、私が関数を自分で書くことは決してない理由であり、型付きの戻り値が混在しています...

于 2012-07-21T20:08:47.950 に答える