【www.gdgbn.com--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"] . "
";
}
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() 就能了。

本文来源:http://www.gdgbn.com/shujuku/27634/