如何在 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 注入!