快速业务通道

ZendFramework中打开Pdo扩展连接MySql

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22

首先需要打开Pdo扩展。

在Windows目录下找到php.ini文件。打开extension=php_pdo_mysql.dll。

extension=php_pdo.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
......

新建ZF工程如下图所示:

测试代码如下:

1.<?php
2.
3./**
4. * IndexController - The default controller class
5. *
6. * @author
7. * @version
8. */
9.
10.require_once ''Zend/Controller/Action.php'';
11.require_once ''Zend/Db.php'';
12.require_once ''Zend/Registry.php'';
13.require_once ''Zend/Db/Table.php'';
14.
15.class IndexController extends Zend_Controller_Action
16.{
17. public function init()
18. {
19. $params = array (''host'' => ''localhost'',
20. ''username'' => ''root'',
21. ''password'' => ''root'',
22. ''dbname'' => ''mysql'');
23. $db = Zend_Db::factory(''Pdo_Mysql'', $params);
24. Zend_Db_Table::setDefaultAdapter($db);
25. Zend_Registry::set(''db'', $db);
26. }
27.
28. public function indexAction()
29. {
30. $adapter = Zend_Registry::get(''db'');
31. $result = $adapter->query(''select * from user'');
32. echo $result->rowCount();
33. echo $result->fetchAll();
34. }
35.}

这样就能和想要连接的数据库建立连接了。

关于如何取数据,请参看下面的代码:

1.<?php
2.
3./**
4. * IndexController - The default controller class
5. *
6. * @author
7. * @version
8. */
9.
10.require_once ''Zend/Controller/Action.php'';
11.require_once ''Zend/Db.php'';
12.require_once ''Zend/Registry.php'';
13.require_once ''Zend/Db/Table.php'';
14.
15.class IndexController extends Zend_Controller_Action
16.{
17. public function init()
18. {
19. $params = array (''host'' => ''localhost'',
20. ''username'' => ''root'',
21. ''password'' => ''root'',
22. ''dbname'' => ''mysql'');
23. $db = Zend_Db::factory(''Pdo_Mysql'', $params);
24. Zend_Db_Table::setDefaultAdapter($db);
25. Zend_Registry::set(''db'', $db);
26. }
27.
28. public function indexAction()
29. {
30. $adapter = Zend_Registry::get(''db'');
31. $result = $adapter->query(''select * from user'');
32. echo $result->rowCount();
33. $rowset = $result->fetchAll();
34. foreach ($rowset as $row) {
35. echo $row[''Host''];
36. }
37. }
38.}

注意:fetchAll方法默认只能通过字段名称取数据,如果想通过数字(所在列的位置)取需要做如下处理:

1. ......
2. public function indexAction()
3. {
4. $adapter = Zend_Registry::get(''db'');
5. $result = $adapter->query(''select * from user'');
6. echo $result->rowCount();
7. $rowset = $result->fetchAll(Zend_Db::FETCH_NUM);
8. foreach ($rowset as $row) {
9. echo $row[0];
10. }
11. }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号