php開啟事務
您好,MySQL提交方式autocommit默認開啟,這種模式本身就是以每次查詢為一次單獨的事務。
當開啟事務後,直到執行commit語句才會提交,所以不會自動提交,否則我們開啟事務也沒有意義了呀。
希望能幫到您。
Ⅱ windows系統下怎樣開啟php的 php
在程序開發過程中,我們可能有很多情況下需要自動的執行某一段代碼從而使程序自動更新某模塊的狀態等,下面說明了如何使系統自動執行php代碼的方法。
1.打開控制面板-》任務計劃
2.雙擊添加任務計劃點擊「瀏覽」,找到php解釋器所在的位置,並選擇php.exe給自己添加的任務起一個名字,隨便選一個選項,點擊下一步輸入系統用戶名和密碼,一般用戶名是默認輸入好的輸入完成後點擊下一步,彈出完成提示框,勾選復選框打開任務高級設置對話框,編輯「運行」欄,在後面加上你要運行的php文件,設置運行時間即可。
Ⅲ php mysql 事務怎麼寫
建一張test表
set autocommit=0;//設置mysql不自動提交就是不自動執行sql語句
begin; //開啟一個事務
insert into test value(test);
insert into test value(test2);
commit;//提交 ,會執行上面2句sql語句 此時test 表裡面有 test 和 test2 2條數據
begin; //開啟一個事務
insert into test values(test3);
rollback; //回滾 , test表裡面並沒有test3 這條數據
通常 在php裡面會判斷 if(!mysql_query($sql)){mysql_query('rollback');} 就是如果沒有成功執行sql就進行回滾,比如轉賬我給你10塊錢 先從我賬號裡面減去10元 再從你賬戶加10元 這就是2條sql 要保證都能執行完成
Ⅳ 請問在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();
}
}
Ⅳ php中事務處理是什麼意思
事務:是若幹事件的集合
事務處理:當所有事件執行成功,事務才執行;若有任何一個事件不能成功執行,事務的其它事件也不被執行