我們學習了解這麼多關於PHP的知識,不知道你們php中如何呼叫儲存函數?呼叫預存程序?其中觸發器是什麼?是否已經完全掌握了呢,如果沒有,那就跟隨這篇文章一起繼續學習吧
相關推薦:PHP中關於is,between,in等運算符的用法是什麼?
在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影片教學
以上是php中如何呼叫儲存函數?呼叫預存程序?其中觸發器是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!