Maison > Article > développement back-end > 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];