當前位置:首頁 » 編程語言 » php回滾

php回滾

發布時間: 2023-03-03 17:17:26

php mysql commit之後還可以rollback么

事務(transaction)是由查詢和/或更新語句的序列組成。 用 begin、start transaction
開始一個事務,rollback 回滾事務,commit 提交事務。 在開始一個事務後,可以有若干個 SQL 查詢或更新語句,每個 SQL
遞交執行後,還應該有判斷是否正確執行的語句,以確定下一步是否回滾,若都被正確執行則最後提交事務。
事務一旦回滾,資料庫則保持開始事務前狀態。就好象一個被編輯的文件不存檔退出,自然還是保持文件原來的樣子。
所以,事務可被視為原子操作,事務中的 SQL,要麼全部執行,要不一句都不執行。
人家的回答,編輯文件可以理解吧

⑵ 什麼是ftp,http,SQL,php,NAT

FTP是FileTransferProtocol的縮寫,中文翻譯為"文件傳輸協議"。它是在計算機和網路之間交換文件的最簡單的方法。像傳送可顯示文件的HTTP和電子郵件的SMTP一樣,FTP也是應用TCP/IP協議的應用協議標准。FTP通常用於將網頁從創作者上傳到伺服器上供人使用,而從伺服器上下傳文件也是一種非常普遍的使用方式。
你可以用非常簡單的DOS界面來使用FTP,在Windows98中,單擊"開始→運行",輸入FTP後面接著輸入主機IP地址或網址(注意,不要加上http://),例如輸入:www.intodigi.com,就可以連接到筆者的網站,連接後會出現User(用戶名)和password(密碼),連接成功後,就可以用命令來操作。常用的有dir:顯示此目錄下的文件get:下載文件put:上傳文件。或者使用第三方提供的圖形界面的FTP來更新(刪除,重命名,移動和復制)伺服器上的文件,一般的FTP軟體還支持續傳的功能。現在有許多伺服器支持匿名登錄,允許用戶使用FTP和anonymous作為用戶名進行登錄,通常可使用任何口令或只按回車鍵。

HTTP(Hypertext Transfer Protocol),即超文本傳輸協議。是WWW瀏覽器和WWW伺服器之間的應用層通訊協議。HTTP協議是基於TCP/IP之上的協議,它不僅保證正確傳輸超文本文檔,還確定傳輸文檔中的哪一部分,以及哪一部分內容首先顯示(如文本先與圖形)等等

SQL是一種編程語言,下面對其進行一個詳細介紹:

SQL(Structure Query Language)語言是資料庫的核心語言。
SQL的發展是從1974年開始的,其發展過程如下:
1974年-----由Boyce和Chamberlin提出,當時稱SEQUEL。
1976年-----IBM公司的Sanjase研究所在研製RDBMS SYSTEM R
時改為SQL。
1979年-----ORACLE公司發表第一個基於SQL的商業化RDBMS產品。
1982年-----IBM公司出版第一個RDBMS語言SQL/DS。
1985年-----IBM公司出版第一個RDBMS語言DB2。
1986年-----美國國家標准化組織ANSI宣布SQL作為資料庫工業標准。
SQL是一個標準的資料庫語言,是面向集合的描述性非過程化語言。
它功能強,效率高,簡單易學易維護(迄今為止,我還沒見過比它還好
學的語言)。然而SQL語言由於以上優點,同時也出現了這樣一個問題:
它是非過程性語言,即大多數語句都是獨立執行的,與上下文無關,而
絕大部分應用都是一個完整的過程,顯然用SQL完全實現這些功能是很困
難的。所以大多數資料庫公司為了解決此問題,作了如下兩方面的工作:
(1)擴充SQL,在SQL中引入過程性結構;(2)把SQL嵌入到高級語言中,
以便一起完成一個完整的應用。
二 SQL語言的分類

SQL語言共分為四大類:數據查詢語言DQL,數據操縱語言DML,
數據定義語言DDL,數據控制語言DCL。

1 數據查詢語言DQL
數據查詢語言DQL基本結構是由SELECT子句,FROM子句,WHERE
子句組成的查詢塊:
SELECT <欄位名表>
FROM <表或視圖名>
WHERE <查詢條件>

2 數據操縱語言
數據操縱語言DML主要有三種形式:
1) 插入:INSERT
2) 更新:UPDATE
3) 刪除:DELETE

3 數據定義語言DDL
數據定義語言DDL用來創建資料庫中的各種對象-----表、視圖、
索引、同義詞、聚簇等如:
CREATE TABLE/VIEW/INDEX/SYN/CLUSTER
| | | | |
表 視圖 索引 同義詞 簇

4 數據控制語言DCL
數據控制語言DCL用來授予或回收訪問資料庫的某種特權,並控制
資料庫操縱事務發生的時間及效果,對資料庫實行監視等。如:
1) GRANT:授權。
2) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一點。
回滾---ROLLBACK
回滾命令使資料庫狀態回到上次最後提交的狀態。其格式為:
SQL>ROLLBACK;
3) COMMIT [WORK]:提交。
在資料庫的插入、刪除和修改操作時,只有當事務在提交到數據
庫時才算完成。在事務提交前,只有操作資料庫的這個人才能有權看
到所做的事情,別人只有在最後提交完成後才可以看到。
提交數據有三種類型:顯式提交、隱式提交及自動提交。下面分
別說明這三種類型。
(1) 顯式提交
用COMMIT命令直接完成的提交為顯式提交。其格式為:
SQL>COMMIT;
(2) 隱式提交
用SQL命令間接完成的提交為隱式提交。這些命令是:
ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,
EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。
(3) 自動提交
若把AUTOCOMMIT設置為ON,則在插入、修改、刪除語句執行後,
系統將自動進行提交,這就是自動提交。其格式為:
SQL>SET AUTOCOMMIT ON;

PHP是一個基於服務端來創建動態網站的腳本語言,您可以用PHP和HTML生成網站主頁。當一個訪問者打開主頁時,服務端便執行PHP的命令並將執行結果發送至訪問者的瀏覽器中,這類似於ASP和CoildFusion,然而PHP和他們不同之處在於PHP開放源碼和跨越平台,PHP可以運行在WINDOWS NT和多種版本的UNIX上。它不需要任何預先處理而快速反饋結果,它也不需要mod_perl的調整來使您的伺服器的內存映象減小。PHP消耗的資源較少,當PHP作為Apache Web伺服器一部分時,運行代碼不需要調用外部二進製程序,伺服器不需要承擔任何額外的負擔。

除了能夠操作您的頁面外,PHP還能發送HIIP的標題。您可以設置cookie,管理數字簽名和重定向用戶,而且它提供了極好的連通性到其它資料庫(還有DBC),集成各種外部庫來做用PDF文檔解析XML的任何事情。

有了PHP就無需特殊的開發環境和IDE,您可以以<?php 作為程序塊的開始,可以以 ?>作為PHP代碼塊的結束,當然您也可以用帶有 <% %>的標記甚至用<script LANGUAGE=「php」></script>的ASP的格式來配置 PHP,PHP會在那些標志間處理所有的事情。

PHP的編程語言類似與C和Perl。在使用它們之前您沒必要聲明任何變數,而且建立數組和Hash是很簡單的事情。PHP還有一些面向對象的特徵,可以為組織和打包您的代碼提供很好的幫助。

雖然PHP在Apache里能快速運行,但是在PHP網站里有一些用來對Microsoft IIS 和 Netscape Enterprise Serer無縫結合的指令集。如果您還沒有 PHP的話,您可以在 http: //www.php.com 下載,您也可以使用操作手冊,它里邊包括了所有的關於PHP的功能和特性的說明

網路地址轉換 (NAT) 是一個 Internet 工程任務組 (Internet Engineering Task Force,IETF) 標准,用於允許專用網路上的多台 PC (使用專用地址段,例如 10.0.x.x、192.168.x.x、172.x.x.x) 共享單個、全局路由的 IPv4 地址。IPv4 地址日益不足是經常部署 NAT 的一個主要原因。Windows XP 和 Windows Me 中的「Internet 連接共享」及許多 Internet 網關設備都使用 NAT,尤其是在通過 DSL 或電纜數據機連接寬頻網的情況下。

NAT 對於解決 IPv4 地址耗費問題 (在 IPv6 部署中卻沒必要) 盡管很有效,但畢竟屬於臨時性的解決方案。這種 IPv4 地址佔用問題在亞洲及世界其他一些地方已比較嚴重,且日漸成為北美地區需要關注的問題。這就是人們為什麼長久以來一直關注使用 IPv6 來克服這個問題的原因所在。

除了減少所需的 IPv4 地址外,由於專用網路之外的所有主機都通過一個共享的 IP 地址來監控通信,因此 NAT 還為專用網路提供了一個隱匿層。NAT 與防火牆或代理伺服器不同,但它確實有利於安全。

⑶ thinkphp調用mysql存儲過程 ,求助,具體點好嗎,格式猜不出來…

thinkPHP的調用
$model = M("");
$data = $model -> query("CALL abcas(1,'[email protected]')");//調用存儲過程
mp($data);//輸出存儲過程的返回值

存儲過程部分
BEGIN -- 存儲過程開始
START TRANSACTION; -- 開始事務
#Routine body goes here...
SET @x = 1; -- 定義變數,通過這個變數判斷知道到的地方,事務成功@x返回大於0,否則返回0
update lzh_members set user_email = em where id = tid;
if row_count() > 0 then -- 判斷語句是否執行成功
update lzh_members set user_type = 0 where id = tid;
if row_count() > 0 then
update lzh_members set user_type = 2 where id = tid;
if row_count() > 0 then
SET @x = 5;
select @x;
commit; -- 事務提交
ELSE
SET @x = 0;
select @x;

rollback; -- 事務回滾
end if;
ELSE
SET @x = 0;
select @x;
rollback; -- 事務回滾
end if;
ELSE
SET @x = 0;
select @x;
rollback; -- 事務回滾

end IF;
END --存儲過程結束

⑷ 如何在php中執行Mysql 鎖定

有表鎖,行鎖,頁鎖

頁級:引擎 BDB。
表級:引擎 MyISAM , 理解為鎖住整個表,可以同時讀,寫不行
行級:引擎 INNODB , 單獨的一行記錄加鎖

1) 表級鎖:開銷小,加鎖快;不會出現死鎖;鎖定粒度大,發生鎖沖突的概率最高,並發度最低。
2) 行級鎖:開銷大,加鎖慢;會出現死鎖;鎖定粒度最小,發生鎖沖突的概率最低,並發度也最高。
3) 頁面鎖:開銷和加鎖時間界於表鎖和行鎖之間;會出現死鎖;鎖定粒度界於表鎖和行鎖之間,並發度一般。

一般不在PHP中使用鎖操作,因為如果鎖了庫,如果遇到錯誤沒有及時的解鎖,就會導致不能訪問數據的情況。

可以使用MYSQL的事務,就是定義事務開始,然後有幾個語句要執行,然後根據情況,如果有一個語句沒有執行成功,可以回滾(取消這幾個語句的執行),從而達到幾個語句都執行成功或者都不執行的效果,在強事務型的應用中一般使用這個方式

熱點內容
怎麼用電腦開手機伺服器 發布:2024-11-07 10:30:50 瀏覽:500
代掛網源碼最新版 發布:2024-11-07 10:28:30 瀏覽:819
atoilinux 發布:2024-11-07 10:19:06 瀏覽:461
速騰哪個配置性能好 發布:2024-11-07 09:55:08 瀏覽:621
壓縮空氣的價格 發布:2024-11-07 09:51:25 瀏覽:540
達內培訓班java 發布:2024-11-07 09:51:19 瀏覽:314
c語言快速排序函數 發布:2024-11-07 09:41:16 瀏覽:209
mobisage文件夾 發布:2024-11-07 09:29:16 瀏覽:876
車載安卓機怎麼清理垃圾 發布:2024-11-07 09:12:51 瀏覽:450
外網訪問vmware 發布:2024-11-07 08:51:03 瀏覽:952