免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1053 | 回复: 0
打印 上一主题 下一主题

php调用mysql存储过程和函数的方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-23 17:38 |只看该作者 |倒序浏览
存储过程和函数是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];


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/13004/showart_70103.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP