您的位置:

php创建存储过程,php调用mysql存储过程

本文目录一览:

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

PHP 如何动态执行创建存储过程的脚本

delimiter //

CREATE PROCEDURE `sp_user` (IN `lastts` timestamp)

BEGIN

CREATE TABLE IF NOT EXISTS `tmp_user`

(

........

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

/* 删除动态变化的用户资料 */

IF lastts = '1970-01-01' THEN truncate table tmp_user;

ELSE delete from tmp_user where lasttime = lastts;

END IF;

/* 初始化用户 */

insert into tmp_user (...........)

select * from (

select distinct * from `tb_order` where date(pay_time) = lastts group by buyer_nick

) as t;

END

//

delimiter;

php调用mysql存储过程(急,在线等)

关键就是两点

1)define('CLIENT_MULTI_RESULTS', 131072);

2)$link = mysql_connect("127.0.0.1", "root", "",1,CLIENT_MULTI_RESULTS) or die("Could not connect: ".mysql_error());

下面就可以正常使用了,以下是例子程序。

?php

define('CLIENT_MULTI_RESULTS', 131072);

$link = mysql_connect("127.0.0.1", "root", "",1,CLIENT_MULTI_RESULTS) or die("Could not connect: ".mysql_error());

mysql_select_db("vs") or die("Could not select database");

?

?php

$result = mysql_query("call get_news_from_class_id(2)") or die("Query failed:" .mysql_error());

while($row = mysql_fetch_array($result, MYSQL_ASSOC))

{

$line = 'trtda target = _blank href=\''.$row["url"].'\''.$row["title"].'('.$row["page_time"].')'.'/a/td/t

r';

echo $line;

printf("\n");

}

mysql_free_result($result);

?

?php

mysql_close($link);

?

php mysql怎么创建可以定时执行任务的过程语句存储过程定时执行sql

服务器的话可以使用计划任务。

如果是虚拟主机只能使用死循环+判定条件了。

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