本篇內(nèi)容介紹了“php中怎么調(diào)用存儲函數(shù)和存儲過程,它的觸發(fā)器是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)公司服務(wù)項目包括沙河口網(wǎng)站建設(shè)、沙河口網(wǎng)站制作、沙河口網(wǎng)頁制作以及沙河口網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,沙河口網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到沙河口省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
在php中使用存儲函數(shù)或存儲過程的示意
//調(diào)用存儲函數(shù):
$v1= $_POST["a];sv2 = $_POST["b]; $sq1 = "insert into tab1 (id, f2, f3)values ( null,nowO. fumnc1(Sv1 , $v2) )":$result= MySQL_query($sql);
//調(diào)用存儲過程:
$v1 = $_POST[ "usemame"];$v2=$_POST["pass"];sv3= $_POST["age"]; $sql ="callinsert_user(Sv1,$v2,$v3 ); ";llinsert_user)是一個存儲過程,帶3個參數(shù),會將該3個參數(shù)數(shù)據(jù)寫入另一個使用存儲過程返回結(jié)果集的例子
$sql m"call Get_User_iInfo( sid )“;//Get_User_info)是一個存儲過程,其中會返回某個指定id 的用戶信息$result = mysql_query(ssql);這里得到的就是“結(jié)果集”了
觸發(fā)器(trigger)
含義:
觸發(fā)器,也是一段預(yù)先定義好的編程代碼〈跟存儲過程和存儲函數(shù)一樣〉,并有個名字。但:它不能調(diào)用,而是,在某個表發(fā)生某個事件(增,刪,改〉的時候,會自動“觸發(fā)”而調(diào)用起來。
定義形式:
create trigger觸發(fā)器名︰觸發(fā)時機(jī)觸發(fā)事件on表名foreach rowasbegin //這里,才是編程的位置,也就是觸發(fā)器的內(nèi)部語句end3說明:
1,觸發(fā)時機(jī),只有2個: before《在....之前), after《在....之后〉﹔2,觸發(fā)事件,只有3個: insert, update , delete
2,觸發(fā)事件,只有3個: insert,update , delete
3,即觸發(fā)器的含義是:在某個表上進(jìn)行insert(或 update,或 delete)之前〈或之后〉,會去執(zhí)行其中寫好的代碼(語句);即每個表只有6個情形會可能調(diào)用該觸發(fā)器,
4,通常,觸發(fā)器用于在對某個表進(jìn)行增刪改的操作的時候,需要同時去做另外一件事情的時候;5,在觸發(fā)器的內(nèi)部,有2個關(guān)鍵字代表某種特定的含義,可以用了獲取數(shù)據(jù)∶
new:
它代表當(dāng)前正要執(zhí)行的 insert update 的時候的“新行”數(shù)據(jù)﹔通過它,可以獲取這一新行數(shù)據(jù)的任意一個字段的值,形式為:
set@v1 = new.id;//獲得該新插入或update行的id字段的值(前提是有該id)
set@v2 = new.age;//同上,old:
它代表當(dāng)前正要執(zhí)行的delete的時候的“舊行”數(shù)據(jù),通過它,可以獲取這一舊行數(shù)據(jù)的任意一個字段的值,形式為:
set @v1 = old.id:I獲得該新插入或update行的id字段的值(前提是有該id)
set @v2 = old.age;//同上;#先刪除tab_int_max中的所有數(shù)據(jù):
delete from tab_int_max1;#取得tab_int中的f1字段的最大值,并存入變量@maxfselect max(f1) into @maxf1 from tab_int;
#然后,根據(jù)該得到的f1字段的最大值,作為條件,取出3個字段的值:
select f2 into @v2 from tab_int where f1 = @maxf1; select f3 into @v3 from tab_int _ where f1 = @maxf1;#然后,將@maxf1,@v2,@v3插入到表tab_int_max1 insert into tab_int_max1 (f1,f2,f3)values( @maxf1,@v2,@v3);end; #再建一個觸發(fā)器,在表tab_int進(jìn)行insert之前,將該行數(shù)據(jù)#也同時插入到一個跟其類似結(jié)果的表(tab_int_some)中 :CREATE TABLE tab_int_some ( id int(11) DEFAULT NULL,age tinyint(4) DEFAULT NULL); create trigger copy_data before insert on tab_int for each rowbegin set @v1 = new.f1; #獲得新行的字段f1的值; set @v2 = new.f2;#獲得新行的字段f2的值; insert into tab_int_some(id,age)values(@v1,@v2);end;“php中怎么調(diào)用存儲函數(shù)和存儲過程,它的觸發(fā)器是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
分享文章:php中怎么調(diào)用存儲函數(shù)和存儲過程,它的觸發(fā)器是什么
網(wǎng)址分享:http://weahome.cn/article/pshoei.html