mysql中預存程序

來源:互聯網
上載者:User

標籤: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中預存程序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.