程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php調用MySQL存儲過程的方法集合

php調用MySQL存儲過程的方法集合

編輯:關於PHP編程
    本篇文章是對php調用MySQL存儲過程的方法進行了集合與匯總,需要的朋友參考下  

    類型一:調用帶輸入、輸出類型參數的方法

    復制代碼 代碼如下:
    $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; //輸出來自存儲過程中輸出的變量


    類型二:調用帶多個輸出類型和多個輸入類型參數的方法

    復制代碼 代碼如下:
    $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/>'; //輸出來自存儲過程中輸出的變量
    echo 'User id:'.$uId; //獲取用戶id


    類型三:調用帶返回結果集的方法

    復制代碼 代碼如下:
    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']; //輸出數據集
     }

    } catch ( Exception $e ) {
     echo $e;
    }


    類型四:調用帶返回多個結果集的方法(目前只能通過mysqli來實現~~)

    復制代碼 代碼如下:


    //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 ……
    ……

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved