存储过程和函数是MySql5.0刚刚引入的。关于这方面的操作在PHP里面没有直接的支持。但是由于Mysql PHP API的设计,使得我们可以在以前的PHP版本中的mysql php api中支持存储过程和函数的调用。
在php中调用存储过程和函数。
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);
这样,在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() 就可以了。
$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];

您当前的位置: