0

私はこれが非常に簡単であることを知っていますが、私は初心者であり、ここで何が間違っているのかわかりません:

1: $mysqli = new mysqli('test', 'test', 'test', 'test');
2: if ($stmt = $mysqli->prepare($query)) {
3:     if (!$stmt->execute()) {
4:        $out .= "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
5:    }
6:    $out = $stmt->fetch_array();
7: } else {
8:   $out .= $mysqli->error;
9: }

6 行目でFatal error: Call to undefined method mysqli_stmt::fetch_array()エラーが発生します。

4

2 に答える 2

2

PHP 5.3 以降を使用しmysqli_stmt::get_result()ている場合は、次を使用できますmysql_result::fetch_array()

$mysqli = new mysqli('test', 'test', 'test', 'test');
if ($stmt = $mysqli->prepare($query)) {
    if (!$stmt->execute()) {
        $out .= "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
    }
    $res = $stmt->get_result();
    while ($out = $res->fetch_array()) {
    }
else {
    $out .= $mysqli->error;
}

また、すべてのMySQL-Improved documentationを確認することもできます。

を使用して、すべての行を一度にフェッチすることもできますmysqli_result::fetch_all()

于 2012-10-21T22:32:58.733 に答える
0

OK、再グループ化して完全に異なるコードを試した後(フェッチが機能していなかったため、理由がわからないため)、これを使用してクエリ関数を完了することができました:

function run_query($query)
{    
  $out = '';
  $db = new PDO("mysql:host=test;dbname=test","test","test");
  $out = $db->query("$query")->fetchAll(PDO::FETCH_OBJ);
  return $out;
}

ご協力いただきありがとうございます。

于 2012-10-27T15:11:06.740 に答える