找不到Zend_Db

时间:2013-03-29 10:37:00

标签: php zend-framework

use Zend\Db;

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

我试图通过关键字'use'来要求Zend_Db,但是我得到一个错误,即没有类Zend_Db,我在这里做错了什么?

4 个答案:

答案 0 :(得分: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,但通常使用factories defined in module config创建适配器。

而且,正如其他地方所述,搞清楚自动加载会让生活变得更轻松。

答案 1 :(得分:1)

在文件开头添加此内容

   require_once 'Zend/Db.php';

答案 2 :(得分:1)

Zend Framework 1.x早于PHP命名空间。因此,ZF1对use关键字等内容并不友好。如果您需要使用Zend Framework 1.x的组件,那么使用包含的autoloader component可能会更好。

如果您使用框架作为MVC应用程序,那么这一切都没有实际意义,我建议您花一些时间来了解默认配置的工作原理。因为如果您使用ZF1作为MVC,Zend_Db组件将已经在自动加载器上。

答案 3 :(得分:0)

不要将下划线名称与斜杠混合

use Zend_Db as Db

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