0
use Zend\Db;

$db = Zend_Db::factory('Pdo_Mysql', array(
    'host'     => 'localhost',
    'username' => 'root',
    'password' => '',
    'dbname'   => 'test'
));

「use」というキーワードで Zend_Db を要求しようとしていますが、クラス Zend_Db が存在しないというエラーが表示されます。

4

4 に答える 4

2

ZF1 を使用している場合、クラスはZend_Db. この場合、本当に PHP 5.3 の名前空間を使用したい場合、正しい使い方は次のとおりです。

use \Zend_Db;

$db = Zend_Db::factory('Pdo_Mysql', array(
    'host'     => 'localhost',
    'username' => 'root',
    'password' => '',
    'dbname'   => 'test'
));

ZF2 を使用している場合、関連するコンポーネントは ですがZend\Db、アダプタの作成は通常、モジュール config で定義されたファクトリを使用して行われます。

また、他の場所で述べたように、オートローディングを理解すると、作業がずっと楽になります。

于 2013-03-29T16:43:07.833 に答える
1

Zend Framework 1.x は、PHP ネームスペースよりもかなり前から存在します。useその結果、ZF1 はキーワードのようなものに対してあまり友好的ではありません。Zend Framework 1.x のコンポーネントを使用する必要がある場合は、付属のautoloader コンポーネントを使用することでより適切に機能する可能性があります。

フレームワークを MVC アプリケーションとして使用している場合、このすべては意味がありません。時間をかけて、既定の構成がどのように機能するかを学習することをお勧めします。ZF1 を MVC として使用している場合、Zend_Dbコンポーネントは既にオートローダー上にあるためです。

于 2013-03-29T11:33:00.510 に答える
1

これをファイルの先頭に追加します

   require_once 'Zend/Db.php';
于 2013-03-29T10:40:34.040 に答える
0

アンダースコア名とスラッシュを混ぜないでください

use Zend_Db as Db

$db = Db::factory('Pdo_Mysql', array(
    'host'     => 'localhost',
    'username' => 'root',
    'password' => '',
    'dbname'   => 'test'
));
于 2013-03-29T12:05:05.820 に答える