php調(diào)用MySQL存儲(chǔ)過(guò)程的方法集合(推薦)
更新時(shí)間:2013年07月03日 11:46:26 作者:
本篇文章是對(duì)php調(diào)用MySQL存儲(chǔ)過(guò)程的方法進(jìn)行了集合與匯總,需要的朋友參考下
類型一:調(diào)用帶輸入、輸出類型參數(shù)的方法
$returnValue = '';
try {
mysql_query ( "set @Return" );
$spname = 'P__Test_GetInfo1';
mysql_query ( "call $spname(@Return, '{$userId}', '{$pwd}')" ) or die ( "[$spname]Query failed:" . mysql_error () );
$result_return = mysql_query ( "select @Return" );
$row_return = mysql_fetch_row ( $result_return );
$returnValue = $row_return [0];
} catch ( Exception $e ) {
echo $e;
}
echo $returnValue; //輸出來(lái)自存儲(chǔ)過(guò)程中輸出的變量
類型二:調(diào)用帶多個(gè)輸出類型和多個(gè)輸入類型參數(shù)的方法
$userId = 0;
try{
mysql_query("set @Message");
mysql_query("set @Id");
mysql_query("call P__Test_Login(@Message, @Id, '{$userId}', '{$pwd}')", $conn) or die("Query failed:".mysql_error());
$result_mess = mysql_query("select @Message");
$result_uid = mysql_query("select @Id");
$row_mess = mysql_fetch_row($result_mess);
$row_uid = mysql_fetch_row($result_uid);
$Proc_Error = $row_mess[0];
$uId = $row_uid[0];
}
catch( Exception $e )
{
echo $e;
}
echo 'proc return message:'$Proc_Error.'<br/>'; //輸出來(lái)自存儲(chǔ)過(guò)程中輸出的變量
echo 'User id:'.$uId; //獲取用戶id
類型三:調(diào)用帶返回結(jié)果集的方法
try {
$spname = 'P__Test_GetData';
$query = mysql_query ( "call $spname()", $conn ) or die ( "[$spname]Query failed:".mysql_error() );
while ( $row = mysql_fetch_array ( $query ) ) {
echo $row ['ProvinceID'].'::'.$row ['ProvinceName']; //輸出數(shù)據(jù)集
}
} catch ( Exception $e ) {
echo $e;
}
類型四:調(diào)用帶返回多個(gè)結(jié)果集的方法(目前只能通過(guò)mysqli來(lái)實(shí)現(xiàn)~~)
//PHP
$rows = array ();
$db = new mysqli($server,$user,$psd,$dbname);
if (mysqli_connect_errno()){
$this->message('Can not connect to MySQL server');
}
$db->query("SET NAMES UTF8");
$db->query("SET @Message");
if($db->real_query("call P__Test_GetData2(@Message)")){
do{
if($result = $db->store_result()){
while ($row = $result->fetch_assoc()){
array_push($rows, $row);
}
$result->close();
}
}while($db->next_result());
}
$db->close();
print_r($rows);
//Procedure
……
select * from T1 where ……
select * from T2 where ……
……
復(fù)制代碼 代碼如下:
$returnValue = '';
try {
mysql_query ( "set @Return" );
$spname = 'P__Test_GetInfo1';
mysql_query ( "call $spname(@Return, '{$userId}', '{$pwd}')" ) or die ( "[$spname]Query failed:" . mysql_error () );
$result_return = mysql_query ( "select @Return" );
$row_return = mysql_fetch_row ( $result_return );
$returnValue = $row_return [0];
} catch ( Exception $e ) {
echo $e;
}
echo $returnValue; //輸出來(lái)自存儲(chǔ)過(guò)程中輸出的變量
類型二:調(diào)用帶多個(gè)輸出類型和多個(gè)輸入類型參數(shù)的方法
復(fù)制代碼 代碼如下:
$userId = 0;
try{
mysql_query("set @Message");
mysql_query("set @Id");
mysql_query("call P__Test_Login(@Message, @Id, '{$userId}', '{$pwd}')", $conn) or die("Query failed:".mysql_error());
$result_mess = mysql_query("select @Message");
$result_uid = mysql_query("select @Id");
$row_mess = mysql_fetch_row($result_mess);
$row_uid = mysql_fetch_row($result_uid);
$Proc_Error = $row_mess[0];
$uId = $row_uid[0];
}
catch( Exception $e )
{
echo $e;
}
echo 'proc return message:'$Proc_Error.'<br/>'; //輸出來(lái)自存儲(chǔ)過(guò)程中輸出的變量
echo 'User id:'.$uId; //獲取用戶id
類型三:調(diào)用帶返回結(jié)果集的方法
復(fù)制代碼 代碼如下:
try {
$spname = 'P__Test_GetData';
$query = mysql_query ( "call $spname()", $conn ) or die ( "[$spname]Query failed:".mysql_error() );
while ( $row = mysql_fetch_array ( $query ) ) {
echo $row ['ProvinceID'].'::'.$row ['ProvinceName']; //輸出數(shù)據(jù)集
}
} catch ( Exception $e ) {
echo $e;
}
類型四:調(diào)用帶返回多個(gè)結(jié)果集的方法(目前只能通過(guò)mysqli來(lái)實(shí)現(xiàn)~~)
復(fù)制代碼 代碼如下:
//PHP
$rows = array ();
$db = new mysqli($server,$user,$psd,$dbname);
if (mysqli_connect_errno()){
$this->message('Can not connect to MySQL server');
}
$db->query("SET NAMES UTF8");
$db->query("SET @Message");
if($db->real_query("call P__Test_GetData2(@Message)")){
do{
if($result = $db->store_result()){
while ($row = $result->fetch_assoc()){
array_push($rows, $row);
}
$result->close();
}
}while($db->next_result());
}
$db->close();
print_r($rows);
//Procedure
……
select * from T1 where ……
select * from T2 where ……
……
您可能感興趣的文章:
- PHP的PDO預(yù)處理語(yǔ)句與存儲(chǔ)過(guò)程
- PHP基于PDO調(diào)用sqlserver存儲(chǔ)過(guò)程通用方法【基于Yii框架】
- PHP使用PDO調(diào)用mssql存儲(chǔ)過(guò)程的方法示例
- 基于Php mysql存儲(chǔ)過(guò)程的詳解
- PHP調(diào)用MySQL存儲(chǔ)過(guò)程并返回值的方法
- php調(diào)用mysql存儲(chǔ)過(guò)程
- php調(diào)用mysql存儲(chǔ)過(guò)程實(shí)例分析
- PHP調(diào)用MySQL的存儲(chǔ)過(guò)程的實(shí)現(xiàn)代碼
- PHP5中使用PDO連接數(shù)據(jù)庫(kù)的方法
- php中mysql連接方式PDO使用詳解
- PHP實(shí)現(xiàn)PDO操作mysql存儲(chǔ)過(guò)程示例
相關(guān)文章
php簡(jiǎn)單實(shí)現(xiàn)單態(tài)設(shè)計(jì)模式的方法分析
這篇文章主要介紹了php簡(jiǎn)單實(shí)現(xiàn)單態(tài)設(shè)計(jì)模式的方法,簡(jiǎn)單分析了單態(tài)設(shè)計(jì)模式的構(gòu)成、實(shí)現(xiàn)與使用方法,需要的朋友可以參考下2017-07-07
PHP鉤子與簡(jiǎn)單分發(fā)方式實(shí)例分析
這篇文章主要介紹了PHP鉤子與簡(jiǎn)單分發(fā)方式,結(jié)合實(shí)例形式分析了PHP鉤子的定義與使用方法,以及多通道自由切換的實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-09-09
PHP封裝mysqli基于面向?qū)ο蟮膍ysql數(shù)據(jù)庫(kù)操作類與用法示例
這篇文章主要介紹了PHP封裝mysqli基于面向?qū)ο蟮膍ysql數(shù)據(jù)庫(kù)操作類與用法,涉及php使用mysqli操作mysql數(shù)據(jù)庫(kù)的連接、執(zhí)行sql語(yǔ)句、關(guān)閉連接等相關(guān)操作技巧,需要的朋友可以參考下2019-02-02
thinkphp5.1 框架鉤子和行為用法實(shí)例分析
這篇文章主要介紹了thinkphp5.1 框架鉤子和行為用法,結(jié)合實(shí)例形式分析了thinkphp5.1 框架鉤子和行為基本功能、定義、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-05-05
PHP編程獲取各個(gè)時(shí)間段具體時(shí)間的方法
這篇文章主要介紹了PHP編程獲取各個(gè)時(shí)間段具體時(shí)間的方法,結(jié)合實(shí)例形式分析了基于date與strtotime函數(shù)進(jìn)行日期時(shí)間運(yùn)算的相關(guān)操作技巧,需要的朋友可以參考下2017-05-05
用PHP實(shí)現(xiàn)多服務(wù)器共享SESSION數(shù)據(jù)的方法
用PHP實(shí)現(xiàn)多服務(wù)器共享SESSION數(shù)據(jù)的方法...2007-03-03
淺析php fwrite寫入txt文件的時(shí)候用 \r\n不能換行的問(wèn)題
以下是對(duì)php中fwrite寫入txt文件的時(shí)候用 \r\n不能換行的問(wèn)題進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08

