php調用mysql存儲過程和函數的方法
存儲過程和函數是MySql5.0剛剛引入的。關于這方面的操作在PHP里面沒有直接的支持。但是由于Mysql PHP API的設計,使得我們可以在以前的PHP版本中的mysql php api中支持存儲過程和函數的調用。
在php中調用存儲過程和函數。
1。調用存儲過程的方法。
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() 就可以了。
$host="localhost";
$user="root";
$password="11212";
$db="samp_db";
$dblink=mysql_connect($host,$user,$password)
or die("can't connect to mysql");
mysql_select_db($db,$dblink)
or die("can't select samp_db");
$res=mysql_query("set @a=$password",$dblink);
$res=mysql_query("call aa(@a)",$dblink);
$res=mysql_query("select @a",$dblink);
$row=mysql_fetch_row($res);
echo $row[0];
關鍵字:mysql、存儲過程、服務器
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解