十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
php调用mysql存储过程和函数的方法
公司主营业务:成都网站建设、成都网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出临江免费做网站回馈大家。
存储过程和函数是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=$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() 就可以了。
$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];
进入你的mysql界面,在命令行输入, mysql DELIMITER // mysql CREATE PROCEDURE proc1(OUT s int) - BEGIN - SELECT COUNT(*) INTO s FROM user; - END - // mysql DELIMITER ; 类似这样了。,
mysql调试存储过程具体方法:
在你的存储过程中加入如下语句:
SELECT
变量1,变量2;
然后用mysql自带的cmd程序进入mysql
下。
call
你的存储过程名(输入参数1,@输出参数);(注:这里帮助下新同学,如果你的存储过程有输出变量,那么在这里只需要加
@
然后跟任意变量名即可);
即可发现你的变量值被打印到了cmd下