當前位置:首頁 » 編程語言 » php事務處理

php事務處理

發布時間: 2022-05-22 03:53:10

php可以實現每天6點自動處理事務嗎

Linux的cron本身具備這個功能,需要執行的任務放在/etc/crontab目錄下的相關文件里就可以了,Linux/Unix系統之所以穩定持久,我想一部分的原因也是因為這個cron,很多維護的工作都在這裡面設置好了

就算php能夠定時執行,也會大大加重系統的負擔,沒有必要的

Ⅱ thinkphp中怎麼使用多表事務處理

在 Thinkphp 3.2.3 下測試通過。

Thinkphp 對事務的處理非常簡單。單表事務只需使用 M 函數實例化一個數據表對象,如果操作成功則提交,失敗則回滾。例如:

[php]view plain

  • $User=M('user');

  • $User->startTrans();//開啟事務

  • $id=$User->add(['name'=>'hongxuan']);

  • //

  • //TODO其它操作

  • //

  • if($id){//插入成功

  • $User->commit();//提交

  • }else{//添加失敗

  • $User->rollback();//回滾

  • }


  • 對多表的事務處理也非常簡便。先用 M 函數實例化一個空對象,使用 table 方法進行多個表的操作,如果操作成功則提交,失敗則回滾。例如:
  • [php]view plain

  • $Model=M();//實例化一個空對象

  • $Model->startTrans();//開啟事務

  • //

  • //TODO其它操作

  • //

  • //table方法中的數據表名要帶上前綴,這里為「test_」。

  • $Model->table('test_user')->add(['name'=>'admin']);

  • $Model->table('test_key')->add(['key'=>'test']);

  • $Model->table('test_value')->add(['value'=>'test']);

  • $Model->table('test_task')->add(['task'=>'test']);

  • if(操作成功的條件){

  • $Model->commit();//成功則提交事務

  • }else{

  • $Model->rollback();//否則將事務回滾

  • }

Ⅲ 簡述什麼是事務處理以及PHP中PDO事務處理的實現過程

事物是一個原子操作。比如說要執行一系列操作 用戶沖錢 加錢 然後加積分。中間可能某條失敗 讓它回滾

Ⅳ php事務處理後怎樣進行頁面跳轉

<?php
header("Location: http://www.example.com/");
?>

把http://www.example.com/改成你要跳轉到的頁面就行了。

Ⅳ PHP一般是如何做sql事務處理的

事務是tran
不是trin
begin
tran
delete
from
a
where
uid='002'
delete
from
b
where
uid='002'
commit
tran
如果沒有特殊需要,不必使用rollback
tran,執行兩個表刪除的時候,如果遇到某個語句出錯,都會自動回滾的。

Ⅵ php中有沒有事務的概念

事務操作一般情況下只是在資料庫層面上體現,在PHP中是沒有事務概念的。常用的資料庫MySQL,SQLServer,Oracle等都支持事務處理。:)
其實很簡單就是SQL語句,在執行事務前使用Begin Trans(說明不同的資料庫事務處理不同,思路相同)
然後進行事務處理,如果成功則Commit提交事務,如果失敗可以使用Rollback回滾事務。
希望對你有幫助。

Ⅶ PHP中PDO的事務處理如何分析

事務處理具有四個特性:原子性、一致性、獨立性、持久性。

並不是所有的資料庫都支持事務處理的,PDO 為能夠執行事務處理的資料庫提供事務支持。

配置事務處理需注意:

1、關閉 PDO 的自動提交;

$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, false);

2、開啟一個事務需要的方法;

$pdo->beginTransaction(); // 開啟一個事務
$pdo->commit(); // 提交事務
$pdo->rollback(); // 回滾事務

3、一般事務處理是運行在 try...catch...語句中,當事務失敗時執行 catch 代碼段。

php
try {
$pdo->beginTransaction(); // 開啟一個事務
$row = null;
$row = $pdo->exec("xxx"); // 執行第一個 SQL
if (!$row)
throw new PDOException('提示信息或執行動作'); // 如出現異常提示信息或執行動作
$row = $pdo->exec("xxx"); // 執行第二個 SQL
if (!$row)
throw new PDOException('提示信息或執行動作');
$pdo->commit();
} catch (PDOException $e) {
$pdo->rollback(); // 執行失敗,事務回滾
exit($e->getMessage());
}
?>

在事務中的 SQL 語句,如果出現錯誤,那麼所有的 SQL 都不執行。當所有 SQL 有無誤的時候,才提交執行。

Ⅷ php中事務處理是什麼意思

事務:是若幹事件的集合
事務處理:當所有事件執行成功,事務才執行;若有任何一個事件不能成功執行,事務的其它事件也不被執行

Ⅸ 支付寶及時付款怎麼用php事務處理

你用的框架還是原生?

原生和框架代碼不同 但是大概意思都是一樣的。例如原生的pdo吧:

<?php
$pdo=newpdo("mysql:host=localhost;dbname=mydb","root","root",array(PDO::ATTR_AUTOCOMMIT=>0));
try{
$pdo->beginTransaction();//開啟事務處理
$price=500;
$sql="updatexxsetprice=price-{$price}whereid=1";
$affected_rows=$pdo->exec($sql);
if(!$affected_rows)
thrownewPDOException("失敗");//那個錯誤拋出異常
$sql="updatezhanghaosetprice=price+{$price}whereid=3";
$affected_rows=$pdo->exec($sql);
if(!$affected_rows)
thrownewPDOException("失敗");
echo"交易成功!";
$pdo->commit();//交易成功就提交
}catch(PDOException$e){
echo$e->getMessage();
$pdo->rollback();
}
/*這是原生pdo的事務一個簡單實例
*至於框架就更簡單了一般model類都有定義
*具體流程意思就是開啟事務事務出錯就回滾rollback();事務成功就提交commit();
*/
?>

Ⅹ 請問在php中如何控制多表事務

php框架中多表事務操作實例,參考如下:
function makeAcquire($nUsers,$nAwards)
{
//更新資料庫
$tranDb = new Model();
$tranDb->startTrans();
for($i = 0; $i < sizeof($nUsers); $i++)
{
//更新表Acquire
$flagAc = $tranDb->table('Acquire')->add($acquire);
//更新表Users
$where = array('u_id'=>$nUsers[$i]['u_id']);
$flagU = $tranDb->table('Users')->where($where)->setInc('u_man_count',1);
//更新表Award
$where = array('a_id'=>$nAwards[$i]['a_id']);
$flagA = $tranDb->table('Award')->where($where)->setDec('a_count',1);
}
if($flagAc && $flagU && $flagA)
{
$tranDb->commit();
}
else
{
$tranDb->rollback();
}
}

熱點內容
工業伺服器機箱怎麼樣 發布:2025-02-14 00:29:15 瀏覽:85
英朗壓縮機 發布:2025-02-14 00:29:12 瀏覽:677
java門面模式 發布:2025-02-14 00:29:09 瀏覽:916
java旋轉 發布:2025-02-14 00:22:49 瀏覽:103
存儲虛擬化方案 發布:2025-02-14 00:21:15 瀏覽:695
ubuntupython3安裝 發布:2025-02-14 00:14:45 瀏覽:661
和平精英怎麼更新比較快安卓 發布:2025-02-14 00:14:35 瀏覽:974
怎麼改密碼鎖 發布:2025-02-13 23:47:39 瀏覽:852
androidbitmap獲取大小 發布:2025-02-13 23:47:38 瀏覽:559
怎麼把升級鴻蒙系統變回安卓 發布:2025-02-13 23:36:07 瀏覽:595