Zend Framework のトランザクション処理に関する質問

WBOY
リリース: 2016-06-13 12:59:53
オリジナル
1783 人が閲覧しました

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 />
?>
ログイン後にコピー


私が書いた例では、パスしませんでしたが、
というプロンプトが表示されました。 致命的なエラー: E:phpZendFrameworklibraryZendDbAdapterPdoAbstract.php:305 にメッセージ「すでにアクティブなトランザクションがあります」を含む例外「PDOException」がキャッチされませんでしたスタック トレース: #0 E:phpZendFrameworklibraryZendDbAdapterPdoAbstract.php(305): PDO->beginTrans action() #1 E :phpZendFrameworklibraryZendDbAdapterAbstract.php(484): Zend_Db_Adapter_Pdo_Abstract->beginTransaction() #2 D:svnreposWiClubsrcapplicationmodelsshop.php(76): Zend_Db_Adapter_Abstract->beginTransaction() #3 D:svnreposWiClubsrコントローラーショップコントローラー.php(507): ショップ-> inserttest( Array) #4 E:phpZendFrameworklibraryZendControllerAction.php(513): ShopController->shopaddtestAction() #5 E:phpZendFrameworklibraryZendControllerDispatcherStandard.php(289): Zend_Controller_Action->dispatch('shopaddtestActi...') #6 E: phpZendFrameworklibraryZendControllerFront.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #7 D:svnreposWiC in E:phpZendFrameworklibraryZendDbAdapterPdoAbstract.php 行 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 />
ログイン後にコピー


Util.php [共通フォルダー、コントローラーフォルダー、モデルフォルダーと同じレベル]

<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 />
クラス 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);
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート