萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> php調用mysql存儲過程的方法

php調用mysql存儲過程的方法

php調用mysql存儲過程的方法 在網上找了很久沒找到好的關於php調用mysql存儲過程的方法,我就自己來寫一個簡單的關於調用mysql存儲過程實例吧,講得不好,如果你有意見可以自己寫啊。

php教程調用mysql教程存儲過程的方法
在網上找了很久沒找到好的關於php調用mysql存儲過程的方法,我就自己來寫一個簡單的關於調用mysql存儲過程實例吧,講得不好,如果你有意見可以自己寫啊。
*/

delimiter //

create procedure pro_reg (in nc varchar(50), in pwd varchar(50), in email varchar(50),in address varchar(50))

 begin

 insert into tb_reg (name, pwd ,email ,address) values (nc, pwd, email, address);

 end;


調用存儲過程pro_reg,實現將用戶錄入的注冊信息保存到數據庫教程。代碼如下:

if($sql=$conn->query("call pro_reg('".$nc."','".$pwd."','".$email."','".$address."')"))

      {

         echo "<script>alert('用戶注冊成功!');</script>";

      }

     else

     {

         echo "<script>alert('用戶注冊失敗!');</script>";

      }

 

$link = mysqli_connect('localhost' , 'root' , '12345' , 'test') or die('cant connect to localhost.');

$query_id = mysqli_query($link , 'call myselect();');
while($rs = mysqli_fetch_array($query_id))
{
    echo $rs['a'] . '<br />';
}
mysqli_close($link);


//方法二


$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];

/*
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() 就能了。

copyright © 萬盛學電腦網 all rights reserved