zend-framework – 使用Zend_Db数据库连接

开发技术 作者: 2024-06-24 11:20:01
我正在尝试自学Zend Framework.我在使用自定义框架方面有一些丰富的经验,但从未使用过Zend.这就像尝试使用带有连指手套的刀叉一样. 我有一个系统启动并运行.正在applition.ini文件中创建数据库连接而没有错误. 我正在尝试使用此连接到数据库来执行基本SQL. application.ini有以下几行: db.adapter = PDO_MYSQL db.params
我正在尝试自学Zend Framework.我在使用自定义框架方面有一些丰富的经验,但从未使用过Zend.这就像尝试使用带有连指手套的刀叉一样.

我有一个系统启动并运行.正在applition.ini文件中创建数据库连接而没有错误.

我正在尝试使用此连接到数据库来执行基本sql. application.ini有以下几行:

db.adapter      = PDO_MysqL
db.params.host  = localhost
db.params.username = cpanel_dbuser
db.params.password = 123456
db.params.dbname   = cpanel_dbname

我正在尝试连接到/public/index.PHP中的数据库

$config = new Zend_Config_Ini(APPLICATION_PATH . 
                              '/configs/application.ini','production');
$application->db = Zend_Db::factory($config->db);
Zend_Db_Table::setDefaultAdapter($db);

我得到的错误是:

Fatal error:  Uncaught exception 'Zend_Db_Exception' with message 'Adapter name must be specified in a string' in /home/path/library/Zend/Db.PHP:226
Stack trace:
#0 /home/path/public/index.PHP(32): Zend_Db::factory(Array)
#1 {main} thrown in /home/path/library/Zend/Db.PHP on line 226

如果我print_r Config对象

Zend_Config Object
(
    [_allowModifications:protected] => 
    [_index:protected] => 0
    [_count:protected] => 2
    [_data:protected] => Array
        (
            [adapter] => PDO_MysqL
 /* ... more stuff ... */

根据我对教程的理解和PDF我正在工作,如果我得到这个连接工作,我将能够在控制器的indexAction中做如下的奇妙惊奇

$data = $this->db->fetchAll(‘SELECT * FROM table’);
 foreach ($data as $row) {
      echo $row[‘table_fieldname’];
 }

然后开始为我拥有的表格编写模型.

在这一点上,有一个非常严重的诱惑,切入角落,并按照我已经知道的方式这样做,但这完全违背了学习在框架内工作的目的.

任何人都可以为我弥补差距(或指向一个可以清除它的资源)?

解决方法

在config目录里面的application.ini文件中

resources.db.adapter = PDO_MysqL
resources.db.isDefaultAdapter = true
resources.db.params.host = localhost
resources.db.params.username = username
resources.db.params.password = pwd
resources.db.params.dbname = mydatabase

无论何时何地你需要$db就可以了

$db = Zend_Db_Table::getDefaultAdapter()

这是最好的方法.

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_32651.html