1

mysqliを使用してselectクエリを実行しています...

/** ------------  queries ----------      **/
        $stmt = $mysqli->prepare("SELECT * FROM dept");

        if(! $stmt)
        {
            echo "statement not prepared well";
        }
        else
        {
            echo $mysqli->error;
        }

        if (!$stmt->execute()) {
         echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
    }
 // add else
 else{
  echo "Query is successfully executed but no result fetch";
   }

        if (!($res = $stmt->get_result())) {
            echo "Getting result set failed: (" . $stmt->errno . ") " . $stmt->error;
        }
        /** ------------------------------- **/

        #------result ----
        var_dump($res->fetch_all());
        #---------(/result)----

私の問題は、execute()は正常に機能しているが、レコードをフェッチできないことです...テーブルには大量のデータが含まれています...「クエリは正常に実行されましたが、結果のフェッチはありません」と表示されています。Fatal error: Call to undefined method mysqli_stmt::get_result()

私は何を間違っているのですか..?

4

2 に答える 2

3

次を破る

if (!($res = $stmt->get_result())) {

$res = $stmt->get_result();
if( !$res ) {

というか

$res = $stmt->get_result();
if( $res->num_rows == 0 ) {

エラー(以前は気づかなかった)は

mysqli_stmt :: get_result()は。でのみ使用できますmysqlnd

こちらのガイドラインに従ってインストール/構成する必要があります。

于 2013-03-26T09:58:53.163 に答える
0

私は何を間違っているのですか..?

PDOの代わりにmysqliを使用しています

PDOを使用して、コード全体を次の数行で書き直すことができます。

$stmt = $pdo->prepare("SELECT * FROM dept");
$stmt->execute();
var_dump($stmt->fetchall());

これらすべての数ifecho
そして、準備されたステートメントから始めると、違いはさらに大きくなります

于 2013-03-26T10:13:11.237 に答える