導航:首頁 > 編程語言 > 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存儲過程相關的資料

熱點內容
php固定概率演算法 瀏覽:960
魔獸世界命令重置副本 瀏覽:994
基因組反編譯 瀏覽:154
貓抓老鼠圖形化編程考試 瀏覽:588
r語言編程基礎第五章課後題答案 瀏覽:167
linuxutf8withbom 瀏覽:440
什麼是伺服器配置與管理 瀏覽:156
如何保證伺服器硬碟數據安全 瀏覽:471
賬號出租用什麼app 瀏覽:222
電腦改伺服器需要什麼主板好 瀏覽:512
使用到的編譯器 瀏覽:351
鄞州百丈公園幼兒編程課 瀏覽:417
java實現介面繼承類 瀏覽:492
程序轉化為控制流圖需要編譯嗎 瀏覽:472
聯想彩信在哪個文件夾 瀏覽:462
編譯原理類c語言文法 瀏覽:988
centos時間同步命令 瀏覽:4
會計真賬實操pdf 瀏覽:342
文件加密重裝系統顯示沒有許可權 瀏覽:348
c編譯器怎麼放大字體 瀏覽:342