標籤:val 接收 第一個 query 資訊 結果 函數 username 定義
預存程序procedure
預存程序,其本質還是函數——但其規定:不能有傳回值;
定義形式:
說明:
1,in:用於設定該變數是用來“接收實參資料”的,即“傳入”;預設不寫,就是in
2,out:用於設定該變數是用來“儲存預存程序中的資料”的,即“傳出”,即函數中必須對它賦值;
3,inout:是in和out的結合,具有雙向作用;
4,對於,out和inout設定,對應的實參,就“必須”是一個變數,因為該變數是用於“接收傳出資料”;
調用預存程序:
call 預存程序名 (實參1,實參2,.... )
它應該是在“非編程環境中”調用,即執行增刪改查的情境下;
舉例1:
#建立一個預存程序:
#該預存程序的目標是:將3個資料寫入到表tab_int;
#並返回該表的第一個欄位的前3大值的行
調用:
舉例2(使用in,out,inout):
下面使用正確調用方法:
刪除預存程序:
drop procedure 預存程序名;
在php中使用儲存函數或預存程序的示意
<php
//調用儲存函數:
$v1 = $_POST[‘a’];
$v2 = $_POST[‘b’];
$sql = “insert into tab1 (id, f2, f3) values ( null, now(), func1($v1 , $v2 ) )”;
$result = mysql_query($sql);
//調用預存程序:
$v1 = $_POST[‘username’];
$v2 = $_POST[‘pass’];
$v3 = $_POST[‘age’];
$sql = “ call insert_user($v1, $v2, $v3 ); ”; //insert_user()是一個預存程序,帶3個參數,會將該3個參數資料寫入(insert)某個表中。
$result = mysql_query();
另一個使用預存程序返回結果集的例子:
$id = $_GET[‘id’];
$sql = “call Get_User_Info( $id ) “; //Get_User_Info()是一個預存程序,其中會返回某個指定id的使用者資訊
$result = mysql_query($sql); //這裡得到的就是“結果集”了
?>
mysql中預存程序