2013-02-22 9 views
5

に動作を停止しました私は仕事を知っているセットにサーバー上で、まだページがPHP5.4+を実行しているにもかかわらず、私は同じ問題にぶつかる。mysqli_fetch_allは、私がホストとの基本的なサイトを持っているし、最近のよう<code>mysqli_fetch_all</code>コマンドは、私がメッセージを受け取るように動作を停止しているように見えたPHP 5.4.11

なぜこれが突然停止したのかわかりません。オフラインでは、XAMPPを使用してmysqli_fetch_allコマンドが完全に動作するため、この問題はDBやコードにはないようです。私は、未知の理由のためにwhileループで多数のページを書き直すことを好まないでしょう。

これはサーバホストの問題ですか?どんな助けでも大歓迎です。

+0

XAMPPのPHPバージョンは何ですか?これは役に立つかもしれません:http://stackoverflow.com/questions/6694437/mysqli-fetch-all-not-a-valid-function – meWantToLearn

+0

XAMPPは5.4.7を実行していますが、ホストはphpversion()を使用して5.4.11を検索しています 関数はPHP 5.3以降で正常に動作するはずですが、この動作は珍しいようです。 – mjbk88

+0

この関数は、mysqlndドライバでのみ使用できます。ホストは古いmysqlドライバを使用している可能性があります。 –

答えて

4

MySQLi拡張モジュールをコンパイルすることができる2つの方法があります。

  1. PHP(mysqlnd)にバンドルされているMySQLのネイティブドライバに対してコンパイルしてMySQLのクライアントライブラリ
  2. に対してそれをリンクすることでは

mysqli_fetch_all()http://php.net/mysqli_fetch_all

を参照してください私は、このようなmysqlndを避けるために推薦する、第二の場合にのみ使用可能です単なる互換性の理由で機能します。互換性が問題ではなく、この機能が必然的に必要な場合は、PHP --with-mysqli=mysqlndを再コンパイルする必要があります。

+0

このような不確かな拡張子を避け、PDOに移動することをお勧めします –

+1

助けてくれてありがとうございます。サーバのアップグレードによりコマンドの機能が削除されましたので、より互換性の高いループを使用して同じジョブを実行します。 – mjbk88

関連する問題