您的位置:首页 > 编程语言 > PHP开发

ZendFramework中打开Pdo扩展连接MySql

2008-10-18 14:56 357 查看
首先需要打开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工程如下图所示:



测试代码如下:

<?php

/**

* IndexController - The default controller class

*

* @author

* @version

*/

require_once 'Zend/Controller/Action.php';

require_once 'Zend/Db.php';

require_once 'Zend/Registry.php';

require_once 'Zend/Db/Table.php';

class IndexController extends Zend_Controller_Action

{

public function init()

{

$params = array ('host' => 'localhost',

'username' => 'root',

'password' => 'root',

'dbname' => 'mysql');

$db = Zend_Db::factory('Pdo_Mysql', $params);

Zend_Db_Table::setDefaultAdapter($db);

Zend_Registry::set('db', $db);

}

public function indexAction()

{

$adapter = Zend_Registry::get('db');

$result = $adapter->query('select * from user');

echo $result->rowCount();

echo $result->fetchAll();

}

}

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

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

<?php

/**

* IndexController - The default controller class

*

* @author

* @version

*/

require_once 'Zend/Controller/Action.php';

require_once 'Zend/Db.php';

require_once 'Zend/Registry.php';

require_once 'Zend/Db/Table.php';

class IndexController extends Zend_Controller_Action

{

public function init()

{

$params = array ('host' => 'localhost',

'username' => 'root',

'password' => 'root',

'dbname' => 'mysql');

$db = Zend_Db::factory('Pdo_Mysql', $params);

Zend_Db_Table::setDefaultAdapter($db);

Zend_Registry::set('db', $db);

}

public function indexAction()

{

$adapter = Zend_Registry::get('db');

$result = $adapter->query('select * from user');

echo $result->rowCount();

$rowset = $result->fetchAll();

foreach ($rowset as $row) {

echo $row['Host'];

}

}

}

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

......

public function indexAction()

{

$adapter = Zend_Registry::get('db');

$result = $adapter->query('select * from user');

echo $result->rowCount();

$rowset = $result->fetchAll(Zend_Db::FETCH_NUM);

foreach ($rowset as $row) {

echo $row[0];

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: