私はこのコードを試しています:
if ($result = $this->mysqli->prepare("SELECT * FROM `mytable` WHERE `rows1`=?"))
{
$result->bind_param("i",$id);
$result->execute();
while ($data = $result->fetch_assoc())
{
$statistic[] = $data;
}
echo "<pre>";
var_dump($statistic);
echo "</pre>";
}
しかし、それは次のエラーを投げています
[金6月15日12:13:11 2012] [エラー] [クライアント127.0.0.1] PHP致命的なエラー:[myfile.php]の未定義メソッドmysqli_stmt :: fetch_assoc()の呼び出し]
また、私は試しました:
if ($result = $this->mysqli->prepare("SELECT * FROM `mytable` WHERE `rows1`=?"))
{
$result->bind_param("i",$id);
$rows = $result->execute();
while ($data = $rows->fetch_assoc())
{
$statistic[] = $data;
}
echo "<pre>";
var_dump($statistic);
echo "</pre>";
}
これがこれを作ります:
[2012年6月15日12:22:59] [エラー] [クライアント127.0.0.1] PHP致命的エラー:[myfile。]の非オブジェクトでメンバー関数fetch_assoc()を呼び出します。 php]
結果を得るために他にできることは何ですか? $data[0]["id"] = 1
のようなDBのassoc配列が必要です
実際、あなたはcanこれを非常に簡単に行うことができますが、 _mysqli_stmt
_ オブジェクトではできません。基礎となる _mysqli_result
_ を抽出する必要があります。これを行うには、単に mysqli_stmt::get_result()
を呼び出します。注:これには、常に使用できるとは限らないmysqlnd(MySQL Native Driver)拡張機能が必要です。
ただし、MySQLiよりもPDOを推奨することについての以下のポイントは依然として有効であり、これが理由の主な例です。MySQLiユーザーランドAPIは意味がありません。上記のメカニズムを発見するには、MySQLiを断続的に使用するのに数年かかりました。さて、ステートメントと結果セットの概念を分離することは理にかなっていると認めますが、その場合、ステートメントにfetch()
メソッドがあるのはなぜですか?思考の糧(MySQLiとPDOの間のフェンスにまだ座っている場合)。
完全を期すために、問題の元のコードに基づいた(大まかに)コードサンプルを次に示します。
_// Create a statement
$query = "
SELECT *
FROM `mytable`
WHERE `rows1` = ?
";
$stmt = $this->mysqli->prepare($query);
// Bind params and execute
$stmt->bind_param("i", $id);
// Extract result set and loop rows
$result = $stmt->get_result();
while ($data = $result->fetch_assoc())
{
$statistic[] = $data;
}
// Proof that it's working
echo "<pre>";
var_dump($statistic);
echo "</pre>";
_
できるよ:
_$conn = mysqli_connect('Host','username','password','database')
$query = 'select * from tablename';
$result = $conn->query($query);
$data = mysqli_fetch_all($result,MYSQLI_ASSOC);
_
_$data
_には、すべての結果が連想配列に含まれています。
*このmysqli_fetch_all()
関数はmysqlnd
パッケージでのみ機能することに注意してください。 http://php.net/manual/en/mysqli-result.fetch-all.php