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

php調用mysql存儲過程和函數的方法

編輯:關於PHP編程

存儲過程和函數是MySQL(和PHP搭配之最佳組合)5.0剛剛引入的。關於這方面的操作在php(做為現在的主流開發語言)裡面沒有直接的支持。但是由於MySQL(和PHP搭配之最佳組合) php(做為現在的主流開發語言) API的設計,使得我們可以在以前的php(做為現在的主流開發語言)版本中的MySQL(和PHP搭配之最佳組合) php(做為現在的主流開發語言) api中支持存儲過程和函數的調用。

在php(做為現在的主流開發語言)中調用存儲過程和函數。

    1。調用存儲過程的方法。

      a。如果存儲過程有 IN/INOUT參數,聲明一個變量,輸入參數給存儲過程,該變量是一對,

      一個php(做為現在的主流開發語言)變量(也可以不必,只是沒有php(做為現在的主流開發語言)變量時,沒有辦法進行動態輸入),一個MySQL(和PHP搭配之最佳組合)

        變量。

      b。如果存儲過程有OUT變量,聲明一個MySQL(和PHP搭配之最佳組合)變量。

        MySQL(和PHP搭配之最佳組合)變量的聲明比較特殊,必須讓MySQL(和PHP搭配之最佳組合)服務器知道此變量的存在,其實也就是執行一條MySQL(和PHP搭配之最佳組合)語句。

        入set @MySQL(和PHP搭配之最佳組合)var=$php(做為現在的主流開發語言)var ;

      c。使用MySQL(和PHP搭配之最佳組合)_query()/MySQL(和PHP搭配之最佳組合)_db_query()執行MySQL(和PHP搭配之最佳組合) 變量聲明語句。

        MySQL(和PHP搭配之最佳組合)_query("set @MySQL(和PHP搭配之最佳組合)var【=$pbpvar】");

        這樣,在MySQL(和PHP搭配之最佳組合)服務器裡面就有一個變量,@MySQL(和PHP搭配之最佳組合)ar。如果時IN參數,那麼其值可以有php(做為現在的主流開發語言)ar傳入。

      d。 如果時存儲過程。

          1。執行 call procedure()語句。

            也就是MySQL(和PHP搭配之最佳組合)_query("call proceduer([var1]...)");

          2. 如果有返回值,執行select  @ar,返回執行結果。

             MySQL(和PHP搭配之最佳組合)_query("select @var)"

             接下來的操作就和php(做為現在的主流開發語言)執行一般的MySQL(和PHP搭配之最佳組合)語句一樣了。可以通過mydql_fetch_row()等函數獲得結果。

          如果時函數。 直接執行 select function() 就可以了。

 
 $host="localhost";
    $user="root";
    $password="11212";
    $db="samp_db";
    $dblink=MySQL(和PHP搭配之最佳組合)_connect($host,$user,$password)
            or die("cant connect to MySQL(和PHP搭配之最佳組合)");
 MySQL(和PHP搭配之最佳組合)_select_db($db,$dblink)
      or die("cant select samp_db");
    $res=MySQL(和PHP搭配之最佳組合)_query("set @a=$password",$dblink);
    $res=MySQL(和PHP搭配之最佳組合)_query("call aa(@a)",$dblink);
    $res=MySQL(和PHP搭配之最佳組合)_query("select @a",$dblink);
    $row=MySQL(和PHP搭配之最佳組合)_fetch_row($res);
    echo $row[0];

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