亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 PHP 從存儲過程中檢索多個結果集

使用 PHP 從存儲過程中檢索多個結果集

PHP
30秒到達戰場 2023-07-01 17:42:02
我創建了一個包含 4 條語句的存儲過程DELIMITER $$CREATE PROCEDURE returnFunction()BEGIN        SELECT            *         FROM            tb_1 as 1;        SELECT            *        FROM            tb_2 as 2;                    SELECT            *        FROM            tb_3 as 3;                    SELECT            *        FROM            tb_4 as 4;END;并像這樣調用這個 sp$query = "CALL returnFunction()";$p_sql = connection::conn()->prepare($query);$p_sql->execute(); do {     $rows = $p_sql->fetchAll(PDO::FETCH_NUM);     if ($rows)      {          print_r($rows);     }   } while ($p_sql->nextRowset());這將返回所有語句的結果。我需要將結果放入第一個語句并將其放入變量 $v1 第二個語句變量 $v2 第三個語句變量 $v3 第四個語句變量 $v4我怎樣才能做到這一點?
查看完整描述

2 回答

?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

您可以使用變量變量來動態生成變量名稱:

$query = "CALL returnFunction()";

$p_sql = connection::conn()->prepare($query);

$p_sql->execute();?

$i = 1;

do {

? ? ?$rows = $p_sql->fetchAll(PDO::FETCH_NUM);

? ? ?if ($rows)?

? ? ?{

? ? ? ? ? print_r($rows);

? ? ? ? ? ${"v$i"} = $rows;

? ? ?}

? ? ?$i++;

} while ($p_sql->nextRowset());

這會將每個非空結果集放入一個變量等中$v1。$v2但是您應該考慮只使用數組:


$query = "CALL returnFunction()";

$p_sql = connection::conn()->prepare($query);

$p_sql->execute();?

$v = array();

do {

? ? ?$rows = $p_sql->fetchAll(PDO::FETCH_NUM);

? ? ?if ($rows)?

? ? ?{

? ? ? ? ? print_r($rows);

? ? ? ? ? $v[] = $rows;

? ? ?}

} while ($p_sql->nextRowset());

請注意,如果您也想存儲空結果集,請將賦值移到塊之外if。


查看完整回答
反對 回復 2023-07-01
?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

您可以使用像下面這樣的 union 并輸出 v1,v2,v3,v4,然后將它們分配給您的變量


SELECT MAX(v1) as v1,MAX(v2) as v2,MAX(v3) as v3,MAX(v4) as v4

FROM

(       

SELECT 1.x AS v1,NULL  AS v2,NULL AS v3, NULL AS v4 

FROM tb_1 AS 1

UNION ALL

SELECT NULL AS v2,2.x  AS v2,NULL AS v3, NULL AS v4

FROM tb_2 AS 2

UNION ALL    

SELECT NULL AS v2,NULL AS v2,3.x AS v3, NULL AS v4

FROM tb_3 AS 3

UNION ALL    

SELECT NULL AS v2,NULL AS v2,NULL AS v3, 4.x AS v4

FROM tb_4 AS 4

) A


查看完整回答
反對 回復 2023-07-01
  • 2 回答
  • 0 關注
  • 160 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號