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。

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
- 2 回答
- 0 關注
- 160 瀏覽
添加回答
舉報