[转帖]php调用mysql存储过程和函数的方法_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1927 | 回复: 0   主题: [转帖]php调用mysql存储过程和函数的方法        下一篇 
ad222888
注册用户
等级:新兵
经验:66
发帖:134
精华:0
注册:2016-9-25
状态:离线
发送短消息息给ad222888 加好友    发送短消息息给ad222888 发消息
发表于: IP:您无权察看 2018-8-24 15:35:30 | [全部帖] [楼主帖] 楼主

在php中调用存储过程和函数。 1。调用存储过程的方法。 a。如果存储过程有 IN/INOUT参数,声明一个变量,输入参数给存储过程,该变量是一对,一个php变量(也可以不必,只是没有php变量时,没有

a。如果存储过程有 IN/INOUT参数,声明一个变量,输入参数给存储过程,该变量是一对,一个php变量(也可以不必,只是没有php变量时,没有办法进行动态输入),一个Mysql变量。

海姹网(网址:http://www.seacha.com),标签:php调用mysql存储过程和函数的方法 , mysql,存储过程,mysql_query

b。如果存储过程有OUT变量,声明一个Mysql变量。mysql变量的声明比较特殊,必须让mysql服务器知道此变量的存在,其实也就是执行一条mysql语句。入set @mysqlvar=$phpvar ;

c。使用mysql_query()/mysql_db_query()执行mysql 变量声明语句。

海姹网(网址:http://www.seacha.com),标签:php调用mysql存储过程和函数的方法 , mysql,存储过程,mysql_query

mysql_query("set @mysqlvar【=$pbpvar】");


这样,在mysql服务器里面就有一个变量,@mysqlar。如果时IN参数,那么其值可以有phpar传入。

d。 如果时存储过程。

1。执行 call procedure()语句。

也就是mysql_query("call proceduer([var1]...)");

海姹网(网址:http://www.seacha.com),标签:php调用mysql存储过程和函数的方法 , mysql,存储过程,mysql_query

2. 如果有返回值,执行select @ar,返回执行结果。

mysql_query("select @var)"


接下来的操作就和php执行一般的mysql语句一样了。可以通过mydql_fetch_row()等函数获得结果。

如果时函数。 直接执行 select function() 就可以了。

$host="localhost";


海姹网(网址:http://www.seacha.com),标签:php调用mysql存储过程和函数的方法 , mysql,存储过程,mysql_query

 $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);


海姹网(网址:http://www.seacha.com),标签:php调用mysql存储过程和函数的方法 , mysql,存储过程,mysql_query

 echo $row[0];


海姹网(网址:http://www.seacha.com),标签:php调用mysql存储过程和函数的方法 , mysql,存储过程,mysql_query
1.2:PHP调用:

$db->query("CALL test.proc_test(@a)");
$res = $db->query("select @a");
$row = $res->fetch_array();
echo $row['@a'];


返回多个数据:

2.1:创建MySQL存储过程:

DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`proc_test` $$
CREATE PROCEDURE `test`.`proc_test` ()


海姹网(网址:http://www.seacha.com),标签:php调用mysql存储过程和函数的方法 , mysql,存储过程,mysql_query

 BEGIN
select * from tbl_name;
END $$
DELIMITER ;


2.2:PHP调用:

$res=$db->query("CALL test.proc_test()");
while ($arr=$res->fetch_array())
echo $arr["Field"] ."<br/>";




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论