複数の結果セットを使用して Zend フレームワーク 2 で MYSQL ストアド プロシージャを実行する方法は、sp に複数の選択クエリがある場合、配列内のすべての結果を取得する方法と、動的な値を sp に渡してテーブルにデータを挿入および更新する方法を意味します。
ありがとう..
複数の結果セットを使用して Zend フレームワーク 2 で MYSQL ストアド プロシージャを実行する方法は、sp に複数の選択クエリがある場合、配列内のすべての結果を取得する方法と、動的な値を sp に渡してテーブルにデータを挿入および更新する方法を意味します。
ありがとう..
私は最近、これについて小さな記事を書きました。私が見つけた解決策は一般的なものではなく、PDO を使用していることを前提としています。MySQL 以外のデータベースで動作するかどうかはわかりません。私が気付いていない、これを行うためのより優れた、より一般的な方法がある可能性があります。
$driver = $this->dbAdapter->getDriver();
$connection = $driver->getConnection();
$result = $connection->execute('CALL sp_get_profile_for_display (123)');
$statement = $result->getResource();
// Result set 1
$resultSet1 = $statement->fetchAll(\PDO::FETCH_OBJ);
foreach ($resultSet1 as $row) {
$something = $row->some_column;
}
// Result set 2
$statement->nextRowSet(); // Advance to the second result set
$resultSet2 = $statement->fetchAll(\PDO::FETCH_OBJ);
foreach ($resultSet2 as $row) {
/* Do something */
}
// Result set 3
$statement->nextRowSet(); // Advance to the third result set
$resultSet3 = $statement->fetchAll(\PDO::FETCH_OBJ);
foreach ($resultSet3 as $row) {
/* Do something */
}
123
パラメータとしてストアド プロシージャに渡すデータに置き換えます。ユーザー提供のデータを使用する場合は、SQL インジェクションを防ぐために必ずエスケープしてください。