Heim > Backend-Entwicklung > PHP-Tutorial > Zend Framework 事务处理 有关问题

Zend Framework 事务处理 有关问题

WBOY
Freigeben: 2016-06-13 12:59:53
Original
1823 Leute haben es durchsucht

Zend Framework 事务处理 问题
官方给出一个示例,如下:

<?php<br />
<br />
// 创建一个 $db对象, 然后开始做一个事务处理.<br />
$db->beginTransaction();<br />
<br />
// 尝试数据库操作.<br />
// 假如成功,commit该操作;<br />
// 假如, roll back.<br />
try {<br />
    $db->query(...);<br />
    $db->commit();<br />
} catch (Exception $e) {<br />
    $db->rollBack();<br />
    echo $e->getMessage();<br />
}<br />
<br />
?>
Nach dem Login kopieren


我写的实例中,确没有通过,而是提示
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
<br />
[general]<br />
db.adapter = PDO_MYSQL<br />
db.config.host = localhost<br />
db.config.username = root<br />
db.config.password = 123456<br />
db.config.dbname = testdb <br />
db.config.charset = utf8<br />
date_default_timezone = "PRC"<br />
Nach dem Login kopieren


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

<br>
<?php <br />
require_once 'Zend/Config/Exception.php';<br>
require_once 'Zend/Config/Ini.php';<br>
require_once 'Zend/Registry.php';<br>
require_once 'Zend/Db.php';<br>
require_once 'Zend/Db/Table.php';<br>
//require_once 'common/Blowfish.php';<br>
//require_once 'common/Hosts.php';<br>
class Common_Util<br>
{	<br>
        public static function getDb($configName,$setcharset=false)<br>
	{<br>
		if($configName)<br>
		{<br>
			$config=new Zend_Config_Ini('../config.ini',$configName);<br>
                        $registry= Zend_Registry::getInstance();<br>
                        $registry->set('config',$config);<br>
                        $params=$config->db->config->toArray();<br>
                        $params['options']=array(PDO::ATTR_PERSISTENT => true);<br>
                        $db = Zend_Db::factory($config->db->adapter,$params); <div class="clear">
                 
              
              
        
            </div>
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage