移植先のサーバーで、PDOまたはMysqli拡張機能が有効になっていません(PHP5を実行していますが)。MySql.php
にクラスが表示されませんZend/Db/Adapter
-ネイティブMySQLを使用するための規則はありますか?または、ある種の回避策はありますか?おそらく古いバージョンのZend
?
そして、私はを変更するためのアクセス権を持っていませんphp.ini
。
ZF プロジェクトに取り組んでいる間、私は Zend_Db アダプタにかなり取り組みました。
Zend_Db の多くは、プリペアド ステートメントや、MySQLi および PDO_MySQL 拡張機能にしか見られないその他の機能に依存しているため、単純な MySQL 拡張機能用の Zend_Db アダプターをサポートできませんでした。
MySQL 拡張機能を使用するメリットはありません。それについて「ネイティブ」は何もありません。これは、MySQL クライアント ライブラリの単なる API バインディングです。
MySQLi または PDO_MySQL のいずれかを有効にすることをお勧めしますが、それを行うアクセス権がないと言います。次に、選択肢は次のとおりです。
最初の選択をお勧めします。
ユーザー @farzadは、ext/mysql 用の Zend_Db アダプターを実装したと主張していますが、Zend_Db の機能の一部を犠牲にしなければなりませんでした。
いいえ、ネイティブアダプタはありません。しかし、あなたはあなた自身を書くことを試みることができます、それは簡単です。他のアダプタが持つすべてのメソッドを作成する必要はありません(ただし、すべての抽象メソッドを実装する必要があります。少なくとも空のままにしておくと、致命的なエラーが発生します)。Mysqliアダプタ(たとえば)をベースとして使用できます(基本クラスではなく、コードの例だと思います)。
class My_Db_Adapter_MySQL extends Zend_Db_Adapter_Abstract {
// your code
}
次に、アダプタの名前としてMy_Db_Adapter_MySQLを使用します
これは正常に動作します: https://github.com/beberlei/Zend_Db-Adapter-for-ext-mysql
可能であれば mysqli または pdo_mysql を有効にする必要があるという他の回答に同意します。とはいえ、私たちは開発者が常に展開環境を制御できる完璧な血まみれの世界に住んでいるわけではないので、実際にあなたが求めていたものも提供できると思いました。