select * from table;
select * from table1;
上記のように、ストアド プロシージャは 2 つの結果セットと 1 つの出力パラメータを PHP で取得する方法を教えてください。
PDOStatement::nextRowsetメソッドの説明を参照
PDOStatement::nextRowsetメソッドの説明を参照
コレクションが複数しかない場合はわかるのですが、次のような出力パラメータがあります
$stmt = $db->prepare("CALL pro_test(:name,@sp_result);"); $stmt->execute (array(':name'=>$name)); $outputArray = $db->query("select @sp_result")->fetch(PDO::FETCH_ASSOC); print_r($outputArray["@sp_result"]);
$sql = 'CALL multiple_rowsets()';$stmt = $conn->query($sql);$i = 1;do { $rowset = $stmt->fetchAll(PDO_FETCH_NUM); if ($rowset) { //想想这里为什么要先判断一下 printResultSet($rowset, $i); } $i++;} while ($stmt->nextRowset());の例です
これはマニュアル
$sql = 'CALL multiple_rowsets()';$stmt = $conn->query($sql);$i = 1;do { $rowset = $stmt->fetchAll(PDO_FETCH_NUM); if ($rowset) { //想想这里为什么要先判断一下 printResultSet($rowset, $i); } $i++;} while ($stmt->nextRowset());の例です
私の意味を誤解しているかもしれませんが、ストアド プロシージャの結果セットとストアド プロシージャによって返されるパラメータが必要です。解決したので公式サイトへ