php PDO呼叫多個結果集的mysql儲存過程

2021-06-13 08:30:55 字數 773 閱讀 9753

之前寫過了 

如何通過 php 取得 mysql procedure 結果

,不過按照那種方法還不能適應多結果集的情況。所謂的多結果集,就是指在儲存過程中,有多次 select 查詢,行程多個結果集。解決的辦法還是用 mysqli 提供的函式 mysqli_multi_query() 來做,如下例

$mysqli = new mysqli("localhost", "root", "", "test");

if (mysqli_connect_errno())

$query = "call yejr();";

$mysqli->multi_query($query);

while($mysqli->more_results())

$result->close();

} $mysqli->next_result();

}

本例可以在php的標準手冊mysqli章節中找到,我只是稍作修改而已。

方法二: 用 pdo 來取得

try 

} while ($stmt->nextrowset());

$dbh = null;

} catch (pdoexception $e)

儲存過程例子如下:

create procedure `yejr`()

begin

select * from yejr limit 1;

select * from yejr limit 2;

end;

儲存過程返回多個結果集

對於查詢試的儲存過程,一般會返回乙個結果集,這個時候,使用正常的查詢操作即可得到結果集,可是,面對下面的一次返回多個結果集的過程,又該如何通過jdbc獲取呢?其實,只需要多加一步操作就可以了。jdbc的preparedstatement可以返回多個結果集,但是resultset一次卻只能接受乙個結果...

LINQ TO SQL 如何接收多個結果集

如何我們需要在linq to sql中呼叫乙個儲存過程,它如果會返回多個結果集,這可能會稍微麻煩一點。下面來看乙個範例 儲存過程 將該儲存過程拖拽到linq to sql的設計器上 我們看看設計器幫我們生成了什麼方法 它生成了乙個方法,同時還生成了乙個特定的型別 multiresultquery 個...

通過DataReader獲取多個結果集

我們知道,ado.net的datareader提供一種從資料庫讀取行的只進流的方式。通常情況下,我們都是針對乙個結果集進行處理。其實通過datareader的nextresult方法,我們可以批處理t sql,也就是可以獲取處理兩個或者多個結果集。下面通過乙個簡單的示例,來簡單說明一下這個功能。1 ...