2

移植先のサーバーで、PDOまたはMysqli拡張機能が有効になっていません(PHP5を実行していますが)。MySql.phpにクラスが表示されませんZend/Db/Adapter-ネイティブMySQLを使用するための規則はありますか?または、ある種の回避策はありますか?おそらく古いバージョンのZend

そして、私はを変更するためのアクセス権を持っていませんphp.ini

4

3 に答える 3

3

ZF プロジェクトに取り組んでいる間、私は Zend_Db アダプタにかなり取り組みました。

Zend_Db の多くは、プリペアド ステートメントや、MySQLi および PDO_MySQL 拡張機能にしか見られないその他の機能に依存しているため、単純な MySQL 拡張機能用の Zend_Db アダプターをサポートできませんでした。

MySQL 拡張機能を使用するメリットはありません。それについて「ネイティブ」は何もありません。これは、MySQL クライアント ライブラリの単なる API バインディングです。

MySQLi または PDO_MySQL のいずれかを有効にすることをお勧めしますが、それを行うアクセス権がないと言います。次に、選択肢は次のとおりです。

  • これらの PHP 拡張機能が有効になっている別のサーバーに移動するか、それらを有効にするためのアクセスを提供します。
  • Zend_Db が他のデータベースの PHP 拡張機能をサポートし、その拡張機能がサーバーで有効になっている場合は、MySQL 以外の別の RDBMS を使用してください。
  • Zend_Db を完全に放棄して、MySQL 拡張機能を直接使用します。

最初の選択をお勧めします。


ユーザー @farzadは、ext/mysql 用の Zend_Db アダプターを実装したと主張していますが、Zend_Db の機能の一部を犠牲にしなければなりませんでした。

于 2009-11-07T00:33:56.697 に答える
1

いいえ、ネイティブアダプタはありません。しかし、あなたはあなた自身を書くことを試みることができます、それは簡単です。他のアダプタが持つすべてのメソッドを作成する必要はありません(ただし、すべての抽象メソッドを実装する必要があります。少なくとも空のままにしておくと、致命的なエラーが発生します)。Mysqliアダプタ(たとえば)をベースとして使用できます(基本クラスではなく、コードの例だと思います)。

class My_Db_Adapter_MySQL extends Zend_Db_Adapter_Abstract {
     // your code
}

次に、アダプタの名前としてMy_Db_Adapter_MySQLを使用します

于 2009-11-03T06:01:24.307 に答える
0

これは正常に動作します: https://github.com/beberlei/Zend_Db-Adapter-for-ext-mysql

可能であれば mysqli または pdo_mysql を有効にする必要があるという他の回答に同意します。とはいえ、私たちは開発者が常に展開環境を制御できる完璧な血まみれの世界に住んでいるわけではないので、実際にあなたが求めていたものも提供できると思いました。

于 2011-11-30T22:39:39.043 に答える