php呼叫mysql儲存過程返回結果集的處理

2021-06-21 12:51:05 字數 2564 閱讀 9248

php呼叫mysql儲存過程返回結果集的處理 

web2.0

root 2008-10-22 14:14 

閱讀(9056)

web2.0 | 

引用(0) | 

閱讀(9056)

查詢當前資料庫有哪些儲存過程:

mysql>show procedure status where db='test'

建立乙個簡單的儲存過程

mysql>create procedure hi() select 'hello';

5 儲存過程建立完畢,看怎麼呼叫它

mysql>call hi();

顯示結果 

mysql> call hi();

+-------+

| hello |

+-------+

| hello |

+-------+

1 row in set (0.00 sec)

query ok, 0 rows affected (0.01 sec)

刪除儲存過程:

drop procedure hi;

儲存過程例項:

delimiter ||

create procedure showdb( v_offset int, v_pagesize int )  

begin

set @stmt = concat("select * from  `comment` order by id desc limit ",v_offset,",",v_pagesize); 

prepare s1 from @stmt;

execute s1;

deallocate prepare s1;

end||

delimiter ;

php呼叫儲存過程:

返回單個資料:

1.1:建立mysql儲存過程:

delimiter $$

drop procedure if exists `test`.`proc_test` $$

create procedure `test`.`proc_test` (out a int)

begin

select count(*) into a from tblname;

end $$

delimiter ;

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` ()

begin

select * from tbl_name;

end $$

delimiter ;

2.2:php呼叫:

$res=$db->query("call test.proc_test()");

while ($arr=$res->fetch_array())

p.s.:以上**執行通過環境 php 5.x.x + mysql 5.x.x 

1 define('client_multi_results', 131072);

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

下面就可以正常使用了,以下是例子程式:

1 <?php

2     define('client_multi_results', 131072);

3 4     $link = mysql_connect("127.0.0.1", "root", "",1,client_multi_results) or die("could not connect: ".mysql_error());

5     mysql_select_db("vs") or die("could not select database");

6 ?>

7 8 <?php

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

10         while($row = mysql_fetch_array($result, mysql_assoc))

11        

18         mysql_free_result($result);

19 ?>

20 21 <?php

22     mysql_close($link);

23 ?>

mybatis呼叫Oracle儲存過程返回結果集

在開發中,有時需要關聯幾張表來進行一些複雜的計算,此時可採用建立一張臨時表,將每次的資料計算後先存入臨時表,然後通過oracle的游標返回。在mybatis中的呼叫如下 呼叫語法格式,需要構造乙個resultmap,用來接收返回的結果集 在service層呼叫如下 在service層呼叫,out v...

php呼叫mysql 儲存過程

php可以通過查詢語句 call procedurename 來呼叫mysql的儲存過程。但不能使用mysql 相關函式得用mysqli 相關函式。建立儲存過程 use test create procedure sta select from ta connstr mysqli connect l...

用 PHP 呼叫 MySQL 儲存過程

mysql 5.0 以上支援儲存過程。php 5.0 以上的 mysqli 系列函式可以支援操作 mysql 的儲存過程。以下是一些簡單的儲存過程和用 php 呼叫的示例。一 返回單個資料 1 2 header content type text html charset utf 8 3 4 hos...