• 技术文章 >后端开发 >php教程

    Zend Framework 事务处理 有关问题

    2016-06-13 11:07:20原创494
    Zend Framework 事务处理 问题
    官方给出一个示例,如下:

    // 创建一个 $db对象, 然后开始做一个事务处理.
    $db->beginTransaction();

    // 尝试数据库操作.
    // 假如成功,commit该操作;
    // 假如, roll back.
    try {
    $db->query(...);
    $db->commit();
    } catch (Exception $e) {
    $db->rollBack();
    echo $e->getMessage();
    }

    ?>


    我写的实例中,确没有通过,而是提示
    Fatal error: Uncaught exception 'PDOException' with message 'There is already an active transaction' in E:\php\ZendFramework\library\Zend\Db\Adapter\Pdo\Abstract.php:305 Stack trace: #0 E:\php\ZendFramework\library\Zend\Db\Adapter\Pdo\Abstract.php(305): PDO->beginTransaction() #1 E:\php\ZendFramework\library\Zend\Db\Adapter\Abstract.php(484): Zend_Db_Adapter_Pdo_Abstract->_beginTransaction() #2 D:\svnrepos\WiClub\src\application\models\shop.php(76): Zend_Db_Adapter_Abstract->beginTransaction() #3 D:\svnrepos\WiClub\src\application\controllers\ShopController.php(507): shop->inserttest(Array) #4 E:\php\ZendFramework\library\Zend\Controller\Action.php(513): ShopController->shopaddtestAction() #5 E:\php\ZendFramework\library\Zend\Controller\Dispatcher\Standard.php(289): Zend_Controller_Action->dispatch('shopaddtestActi...') #6 E:\php\ZendFramework\library\Zend\Controller\Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #7 D:\svnrepos\WiC in E:\php\ZendFramework\library\Zend\Db\Adapter\Pdo\Abstract.php on line 305

    似乎是提示已经有一个事务在运行?刚接触ZF不久,不太熟悉,把相关源文件贴上来吧

    config.ini

    [general]
    db.adapter = PDO_MYSQL
    db.config.host = localhost
    db.config.username = root
    db.config.password = 123456
    db.config.dbname = testdb
    db.config.charset = utf8
    date_default_timezone = "PRC"


    Util.php [所在文件夹 Common,与controllers文件夹,models文件夹同级]

    require_once 'Zend/Config/Exception.php';
    require_once 'Zend/Config/Ini.php';
    require_once 'Zend/Registry.php';
    require_once 'Zend/Db.php';
    require_once 'Zend/Db/Table.php';
    //require_once 'common/Blowfish.php';
    //require_once 'common/Hosts.php';
    class Common_Util
    {
    public static function getDb($configName,$setcharset=false)
    {
    if($configName)
    {
    $config=new Zend_Config_Ini('../config.ini',$configName);
    $registry= Zend_Registry::getInstance();
    $registry->set('config',$config);
    $params=$config->db->config->toArray();
    $params['options']=array(PDO::ATTR_PERSISTENT => true);
    $db = Zend_Db::factory($config->db->adapter,$params);
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:ecshop开发订餐网解决办法 下一篇:40分求ThinkPHP循环嵌套打印出父类与子类的列表,该怎么处理
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• PHP8.2将有哪些改动(性能改进、新特性)!• PHP8.2最新进展,即将进行新特性冻结!• 请问一个文本存放的有关问题,没搞明白如何整 • 请教zendframework有导入数据到数据库,导出数据库的接口吗 • 这个如何采集,有点难倒小弟我了
    1/1

    PHP中文网