本文目錄一覽:
php 調用mysql存儲過程
bean id=”propertyPlaceholderConfigurer” class=”org.springframework.beans.factory.config.PropertyPlaceholderConfigurer”
configure:3427: gcc –version 5
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
怎麼寫mysql存儲過程,並用php調用它?
實現原理
首先,需要知道怎麼寫mysql存儲過程,了解mysq存儲過程語言,
其次,使用mysql工具創建存儲過程。
最後,通過mysql_query()函數執行mysql變量的設置和mysql存儲過程及返回值。
具體代碼如下:
mysql存儲過程代碼
create procedure pro_name(user_id int)
begin
………
end
2. PHP代碼
$host = “localhost”;
$user = “root”;
$password = “232412”;
$db = “user_db”;
$dblink = mysql_connect($host,$user,$password)or die(“can’t connect to mysql”);
mysql_select_db($db,$dblink)or die(“can’t select user_db”);
$user_id = 1;
$res = mysql_query(“set @a=$user_id”,$dblink);
$res = mysql_query(“call pro_name(@a)”,$dblink);
php調用返回多結果的mysql存儲過程
直接處理存儲過程的輸出參數即可。
調用存儲過程的方法。
a。如果存儲過程有 IN/INOUT參數,聲明一個變量,輸入參數給存儲過程,該變量是一對,
一個php變量(也可以不必,只是沒有php變量時,沒有辦法進行動態輸入),一個Mysql
變量。
b。如果存儲過程有OUT變量,聲明一個Mysql變量。
mysql變量的聲明比較特殊,必須讓mysql服務器知道此變量的存在,其實也就是執行一條mysql語句。
入set @mysqlvar=$phpvar ;
c。使用mysql_query()/mysql_db_query()執行mysql 變量聲明語句。
mysql_query(“set @mysqlvar【=$pbpvar】”);
這樣,在mysql服務器裏面就有一個變量,@mysqlar。如果時IN參數,那麼其值可以有phpar傳入。
d。 如果時存儲過程。
1。執行 call procedure()語句。
也就是mysql_query(“call proceduer([var1]…)”);
2. 如果有返回值,執行select @ar,返回執行結果。
mysql_query(“select @var)”
接下來的操作就和php執行一般的mysql語句一樣了。可以通過mydql_fetch_row()等函數獲得結果。
如果時函數。 直接執行 select function() 就可以了。
傳出參數的存儲過程:
$sql = “
create procedure myproce3(out score int)
begin
set score=100;
end; “;
mysql_query($sql);//創建一個myproce3的存儲過程
$sql = “call test.myproce3(@score);”;
mysql_query($sql);//調用myproce3的存儲過程
$result = mysql_query(‘select @score;’);
$array = mysql_fetch_array($result);
echo ‘pre’;print_r($array);
php調用mysql存儲過程,如何實現。 我的代碼如下:
mysql存儲過程返回2個資源,第一個是執行信息,第二個是存儲過程返回結果。
mysql_*系列函數無法獲取超過1個資源,需使用mysqli或PDO代替。
PDO:
$stmt = $db-prepare(“CALL pro_rb_save(?,?,@return_msg);”);
$stmt-bindParam(1, $a);
$stmt-bindParam(2, $b);
$stmt-execute ();
$outputArray = $db-query(“select @return_msg”)-fetch(PDO::FETCH_ASSOC);
var_export($return_msg);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/280359.html