Произвольный доступ к набору строк / результатов с помощью PDO Mysql и переполнения стека

Я хочу получить случайный доступ к результирующим наборам, перенастроенным из хранимой процедуры с использованием PDO Mysql и PHP. я нашел PDOStatement :: nextRowset но доступ к результирующим наборам кажется последовательным.

РЕДАКТИРОВАТЬ
Я ищу что-то вроде этого:

$pdo = new PDO("mysql:host=$server;port=$port;dbname=$dbname;charset=utf8", $user, $pass, array(PDO::ATTR_PERSISTENT => false));
$statement  = "CALL FooSP()";
$query = $pdo->prepare($statement);
$query->execute();

$query->resultSet[1][0]["ColumnFoo"] // Second Resultset, first row, column "ColumnFoo"$query->resultSet[3][1]["ColumnBar"] // third Resultset, second row, columna "ColumnBar"$query->resultSet[0][0]["Column1"] // first Resultset, first row, columna "Column1"

Может кто-нибудь мне помочь?

2

Решение

Если вам нужны все наборы результатов — просто предварительно выберите их, используя следующий набор строк как это:

<?php
$sql = 'CALL multiple_rowsets()';
$stmt = $conn->query($sql);
$fetched_rowsets = array();
do {
$rowset = $stmt->fetchAll(PDO::FETCH_NUM);
if ($rowset)
{
$fetched_rowsets[] = $rowset;
}
# This is important part.
} while ($stmt->nextRowset());
#Now You got the table with all data from all resultsets, fetched in PHP memory.
$fetched_rowsets[1][0]["ColumnFoo"];
$fetched_rowsets[3][1]["ColumnBar"];
$fetched_rowsets[0][0]["Column1"];
?>

Просто помните, что это может занять много памяти.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]