重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

PHP数据库创建存储过程 php怎么写数据库

PHP如何调用MYSQL的存储过程?

php相当于执行mysql的终端,即模拟mysql的客户端,所以符号sql标准的语句都是可以执行的。

创新互联于2013年开始,先为呼伦贝尔等服务建站,呼伦贝尔等地企业,进行企业商务咨询服务。为呼伦贝尔企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

存储是由数据库本身建立起来的,与php没有关系,

具体查看mysql的命令

CREATE

[DEFINER = { user | CURRENT_USER }]

PROCEDURE sp_name ([proc_parameter[,...]])

[characteristic ...] routine_body

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_connect("localhost","user","pwd");

mysql_select_db('testdata') or die (mysql_error());

$sql = "create procedure tb_neaten (in rec int,in pa varchar(15),in qy decimal(10,2),in ar varchar(6))

begin

update test1 set qty=qty-qy where recordnum=rec;

insert into test2 set bname=pa,area=ar,qty=qy,date=date_format(now(),'%Y%m%d'),time=date_format(now(),'%Y%m%d');

end;";

mysql_query($sql) or die (mysql_error());

若是存储过程里含有捕获select结果的语句时,需在mysql_connect时调整参数

mysql_connect("localhost","user","password",1,131072) 

执行时,直接运行

mysql_query(tb_neaten(va1,va2,va3,va4));


网站栏目:PHP数据库创建存储过程 php怎么写数据库
文章位置:http://cqcxhl.com/article/ddocjog.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP