mysql中存儲過程


存儲過程procedure

存儲過程,其本質還是函數——但其規定:不能有返回值;

 

定義形式:

 

說明:

1in:用於設定該變量是用來“接收實參數據”的,即“傳入”;默認不寫,就是in

2out:用於設定該變量是用來“存儲存儲過程中的數據”的,即“傳出”,即函數中必須對它賦值;

3inout:是inout的結合,具有雙向作用;

4,對於,outinout設定,對應的實參,就“必須”是一個變量,因為該變量是用於“接收傳出數據”;

 

調用存儲過程:

call  存儲過程名 (實參1,實參2....

 

它應該是在“非編程環境中”調用,即執行增刪改查的場景下;

 

舉例1:

#創建一個存儲過程:

#該存儲過程的目標是:將3個數據寫入到表tab_int

#並返回該表的第一個字段的前3大值的行

 

調用:

 

 

舉例2(使用inoutinout):

 

下面使用正確調用方法:

 

 

 

刪除存儲過程:

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); //這里得到的就是“結果集”了

 

?>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM