ホームページ > バックエンド開発 > PHPチュートリアル > Codeigniter フレームワーク更新トランザクション (トランザクション) のバグと解決策、Codeigniter Framework_PHP チュートリアル

Codeigniter フレームワーク更新トランザクション (トランザクション) のバグと解決策、Codeigniter Framework_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:22:12
オリジナル
1218 人が閲覧しました

Codeigniter フレームワーク更新トランザクション (トランザクション) のバグと解決策、Codeigniter フレームワーク

CIトランザクション判定エラーのロールバック条件はステートメントが正常に実行されたかどうかであるため、更新操作中は影響を受ける項目数が0であっても正常に実行されたためSQLステートメントの実行結果は1のままですが、影響を受けるアイテムの数のみが 0 です。

この問題を解決する方法は次のとおりです:

一度に多くのステートメントを実行する必要があるトランザクションの場合

更新操作中に影響を受けるアイテムの数が 0 かどうかに基づいてロールするかどうかを決定するだけで済みます。以下では、2 番目のステートメントが更新操作であると仮定します。

コードをコピーします コードは次のとおりです:

//Codeigniter トランザクションの手動モードを採用します
$this->db->trans_strict(FALSE);
$this->db->trans_begin();

$this->db->query('SELECT ...') //SELECT 操作には特別な処理は必要ありません
$this->db->query('INSERT ...');//INSERT エラーが発生した場合、Codeigniter が自動的に処理します

$this->db->query('UPDATE ...');
If (!$this->db->affacted_rows()) {//上記の UPDATE が失敗した場合、ロールバックします
$this->db->trans_rollback();
//@todo例外処理部分
Exit();//次の SQL コードが実行を継続しないように、終了または終了する必要があります。
}

$this->db->query('DELETE...');
If (!$this->db->affacted_rows()) {//上記の DELETE が失敗した場合は、ロールバックします
$this->db->trans_rollback();
//@todo例外処理部分
Exit();//次の SQL コードが実行を継続しないように、終了または終了する必要があります。
}

$this->db->query('SELECT ...') //SELECT 操作には特別な処理は必要ありません
$this->db->query('INSERT ...');//INSERT エラーが発生した場合、Codeigniter が自動的に処理します

If ($this->db->trans_status() === TRUE) {
$this->db->trans_commit();
} その他 {
$this->db->trans_rollback();
//@todo例外処理部分
}

一度に実行されるステートメントが少ない場合は、最後に判断してロールバックするかどうかを決定できます

ステートメントに更新操作がない場合は、自動トランザクションを使用してください。

Codeigniter フレームワークに同時にアクセスできる人数

同時実行数は主にサーバー アーキテクチャに関係しますが、キャッシュがどの程度適切に使用されるかなど、プログラムの最適化も大きく関係します。もちろんフレームワークとは関係ありません

PHP CodeIgniterフレームワークの場合

昨日 CodeIgniter マニュアルを読んだところですが、CodeIgniter の URL の章でその方法が説明されています:

次のように .htaccess ファイルにルールを追加することで処理されます

RewriteEngine on

RewriteCond $1 !^(index\. php| 画像|ロボット\.txt)

RewriteRule ^(.*)$ /index.php/$1 [L]

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/848801.html技術記事 Codeigniter フレームワークの更新トランザクション (トランザクション) のバグと解決策 CI トランザクション判定エラーによる codeigniter フレームワークのロールバックの条件は、ステートメントが正常に実行されたかどうか、および更新操作が ...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート