首页 > 编程知识 正文

php调用mysql的存储过程(php 存储过程)

时间:2023-12-23 21:12:51 阅读:319521 作者:OQWO

本文目录一览:

php 调用mysql存储过程

bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"

configure:3427: gcc --version 5

i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)

Copyright (C) 2007 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

怎么写mysql存储过程,并用php调用它?

实现原理

首先,需要知道怎么写mysql存储过程,了解mysq存储过程语言,

其次,使用mysql工具创建存储过程。

最后,通过mysql_query()函数执行mysql变量的设置和mysql存储过程及返回值。

具体代码如下:

mysql存储过程代码

create procedure pro_name(user_id int)

begin

.........

end

2.  PHP代码

$host     = "localhost";

$user     = "root";

$password = "232412";

$db       = "user_db";

$dblink   = mysql_connect($host,$user,$password)or die("can't connect to mysql");

mysql_select_db($db,$dblink)or die("can't select user_db");

$user_id  = 1;

$res      = mysql_query("set @a=$user_id",$dblink);

$res      = mysql_query("call pro_name(@a)",$dblink);

php调用返回多结果的mysql存储过程

直接处理存储过程的输出参数即可。

调用存储过程的方法。

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() 就可以了。

传出参数的存储过程:

$sql = "

create procedure myproce3(out score int)

begin

set score=100;

end; ";

mysql_query($sql);//创建一个myproce3的存储过程

$sql = "call test.myproce3(@score);";

mysql_query($sql);//调用myproce3的存储过程

$result = mysql_query('select @score;');

$array = mysql_fetch_array($result);

echo 'pre';print_r($array);

php调用mysql存储过程,如何实现。 我的代码如下:

mysql存储过程返回2个资源,第一个是执行信息,第二个是存储过程返回结果。

mysql_*系列函数无法获取超过1个资源,需使用mysqli或PDO代替。

PDO:

        $stmt = $db-prepare("CALL pro_rb_save(?,?,@return_msg);");  

        $stmt-bindParam(1, $a);

        $stmt-bindParam(2, $b);

        $stmt-execute ();

        $outputArray = $db-query("select @return_msg")-fetch(PDO::FETCH_ASSOC);

        

        var_export($return_msg);

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。