導航:首頁 > 編程語言 > php執行mysql存儲過程

php執行mysql存儲過程

發布時間:2023-03-14 14:33:27

php如何調用MYSQL的存儲過程

php相當於執行mysql的終端,即模擬mysql的客戶端,所以符號sql標準的語句都是可以執行的。
存儲是由資料庫本身建立起來的,與php沒有關系,
具體查看mysql的命令
CREATE
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body

② 怎麼寫mysql存儲過程,並用php調用它

  1. 首先,需要知道怎麼寫mysql存儲過程,了解mysq存儲過程語言,

  2. 其次,使用mysql工具創建存儲過程。

  3. 最後,通過mysql_query()函數執行mysql變數的設置和mysql存儲過程及返回值。

  1. mysql存儲過程代碼

createprocerepro_name(user_idint)
begin
.........
end

2. PHP代碼

$host="localhost";
$user="root";
$password="232412";
$db="user_db";
$dblink=mysql_connect($host,$user,$password)ordie("can'tconnecttomysql");
mysql_select_db($db,$dblink)ordie("can'tselectuser_db");
$user_id=1;
$res=mysql_query("set@a=$user_id",$dblink);
$res=mysql_query("callpro_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 procere()語句。
也就是mysql_query("call proceer([var1]...)");
2. 如果有返回值,執行select @ar,返回執行結果。
mysql_query("select @var)"
接下來的操作就和php執行一般的mysql語句一樣了。可以通過mydql_fetch_row()等函數獲得結果。
如果時函數。 直接執行 select function() 就可以了。

傳出參數的存儲過程:
$sql = "
create procere 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存儲過程用到哪些函數

<?php
//建立資料庫連接
$link = mysqli_connect('localhost','root','root','mydb');
$sql = "call getEmail('00056')";
//設置字元集
mysqli_query($link,"set names gbk");
$result = mysqli_query($link,$sql);

$row = mysqli_fetch_array($result);
echo "郵件地址:".$row['email'];
?>

這里有兩篇教程說得非常詳細:
《MySQL 5 存儲過程》:http://www.sunchis.com/html/php/mysql/2010/0305/42.html
《PHP調用存儲過程》:http://www.sunchis.com/html/php/mysql/2010/0305/43.html

⑤ PHP下如何創建MYSQL存儲過程

直接上代碼:
mysql_connect("localhost","user","pwd");
mysql_select_db('testdata')ordie(mysql_error());
$sql="createproceretb_neaten(inrecint,inpavarchar(15),inqydecimal(10,2),inarvarchar(6))
begin
updatetest1setqty=qty-qywhererecordnum=rec;
insertintotest2setbname=pa,area=ar,qty=qy,date=date_format(now(),'%Y%m%d'),time=date_format(now(),'%Y%m%d');
end;";
mysql_query($sql)ordie(mysql_error());
若是存儲過程里含有捕獲select結果的語句時,需在mysql_connect時調整參數
mysql_connect("localhost","user","password",1,131072)
執行時,直接運行
mysql_query(tb_neaten(va1,va2,va3,va4));

⑥ php調用mysql存儲過程,如何實現。 我的代碼如下:

mysql存儲過程返回2個資源,第一個是執行信息,第二個是存儲過程返回結果。

mysql_*系列函數無法獲取超過1個資源,需使用mysqli或PDO代替。


PDO:

$stmt=$db->prepare("CALLpro_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);
閱讀全文

與php執行mysql存儲過程相關的資料

熱點內容
中興光貓機器碼演算法 瀏覽:330
android響應時間測試 瀏覽:940
java編程思想第四版答案 瀏覽:888
如何對nbt編程 瀏覽:885
mscpdf 瀏覽:948
文件夾d盤突然0位元組可用 瀏覽:272
吃火腿腸的解壓場面 瀏覽:339
衛星鍋加密教程 瀏覽:792
php7的特性是什麼 瀏覽:469
編譯類高級語言源代碼運行過程 瀏覽:177
科普中國app怎麼分享 瀏覽:87
51單片機與32單片機比較 瀏覽:422
SQL加密存儲解密 瀏覽:507
電氣工程師把程序加密 瀏覽:797
解壓切東西動畫版 瀏覽:965
點到橢圓的距離演算法 瀏覽:388
新的編譯系統 瀏覽:533
cad替換樣板命令 瀏覽:363
des演算法例子 瀏覽:390
怎麼隱藏系統app 瀏覽:524