您好,登錄后才能下訂單哦!
本篇內容介紹了“php中怎么調用存儲函數和存儲過程,它的觸發器是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
在php中使用存儲函數或存儲過程的示意
//調用存儲函數:
$v1= $_POST["a];sv2 = $_POST["b]; $sq1 = "insert into tab1 (id, f2, f3)values ( null,nowO. fumnc1(Sv1 , $v2) )":$result= mysql_query($sql);
//調用存儲過程:
$v1 = $_POST[ "usemame"];$v2=$_POST["pass"];sv3= $_POST["age"]; $sql ="callinsert_user(Sv1,$v2,$v3 ); ";llinsert_user)是一個存儲過程,帶3個參數,會將該3個參數數據寫入<insert〉某個表中。 Sresult = mysql_queryO;
另一個使用存儲過程返回結果集的例子
$sql m"call Get_User_iInfo( sid )“;//Get_User_info)是一個存儲過程,其中會返回某個指定id 的用戶信息$result = mysql_query(ssql);
這里得到的就是“結果集”了
觸發器(trigger)
含義:
觸發器,也是一段預先定義好的編程代碼〈跟存儲過程和存儲函數一樣〉,并有個名字。但:它不能調用,而是,在某個表發生某個事件(增,刪,改〉的時候,會自動“觸發”而調用起來。
定義形式:
create trigger觸發器名︰觸發時機觸發事件on表名foreach rowasbegin //這里,才是編程的位置,也就是觸發器的內部語句end3
說明:
1,觸發時機,只有2個: before《在....之前), after《在....之后〉﹔2,觸發事件,只有3個: insert, update , delete
2,觸發事件,只有3個: insert,update , delete
3,即觸發器的含義是:在某個表上進行insert(或 update,或 delete)之前〈或之后〉,會去執行其中寫好的代碼(語句);即每個表只有6個情形會可能調用該觸發器,
4,通常,觸發器用于在對某個表進行增刪改的操作的時候,需要同時去做另外一件事情的時候;5,在觸發器的內部,有2個關鍵字代表某種特定的含義,可以用了獲取數據∶
new:
它代表當前正要執行的 insert update 的時候的“新行”數據﹔通過它,可以獲取這一新行數據的任意一個字段的值,形式為:
set@v1 = new.id;
//獲得該新插入或update行的id字段的值(前提是有該id)
set@v2 = new.age;//同上,
old:
它代表當前正要執行的delete的時候的“舊行”數據,通過它,可以獲取這一舊行數據的任意一個字段的值,形式為:
set @v1 = old.id:I
獲得該新插入或update行的id字段的值(前提是有該id)
set @v2 = old.age;//同上;
#先刪除tab_int_max中的所有數據:
delete from tab_int_max1;
#取得tab_int中的f1字段的最大值,并存入變量@maxfselect max(f1) into @maxf1 from tab_int;
#然后,根據該得到的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; #再建一個觸發器,在表tab_int進行insert之前,將該行數據#也同時插入到一個跟其類似結果的表(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中怎么調用存儲函數和存儲過程,它的觸發器是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。