本文目錄一覽:
- 1、php調用mysql存儲過程,如何實現。 我的代碼如下:
- 2、PHP 如何動態執行創建存儲過程的腳本
- 3、php調用mysql存儲過程(急,在線等)
- 4、php mysql怎麼創建可以定時執行任務的過程語句存儲過程定時執行sql
- 5、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));
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/240642.html