Передает результирующий набор запроса на клиента


mysqli_stmt_store_result

(PHP 5)

mysqli_stmt::store_result -- mysqli_stmt_store_result Передает результирующий набор запроса на клиента

Описание

Объектно-ориентированный стиль

bool mysqli_stmt::store_result ( void )

Процедурный стиль

bool mysqli_stmt_store_result ( mysqli_stmt $stmt )

Функцию mysqli_stmt_store_result() нужно вызывать после выполнения запросов, возвращающих результирующий набор (SELECT, SHOW, DESCRIBE, EXPLAIN), и только если требуется сохранить результирующий набор целиком на клиенте. Далее последовательные вызовы mysqli_stmt_fetch() будут возвращать уже буферизованные данные.

Замечание:

В остальных случаях вызывать mysqli_stmt_store_result() нет необходимости. Но если такой вызов совершен, ничего страшного не случится, это не повлияет на производительность и целостность данных. Чтобы убедиться, что запрос вернул результирующий набор, можно воспользоваться функцией mysqli_stmt_result_metadata(), которая в этом случае вернет NULL.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Открываем соединение */
$mysqli = new mysqli("localhost""my_user""my_password""world");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
    
printf("Не удалось подключиться: %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if (
$stmt $mysqli->prepare($query)) {

    
/* выполняем запрос */
    
$stmt->execute();

    
/* передаем результат */
    
$stmt->store_result();

    
printf("Количество строк: %d.\n"$stmt->num_rows);

    
/* очищаем результат */
    
$stmt->free_result();

    
/* закрываем запрос */
    
$stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* Открываем соединение */
$link mysqli_connect("localhost""my_user""my_password""world");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
    
printf("Не удалось подключиться: %s\n"mysqli_connect_error());
    exit();
}

$query "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if (
$stmt mysqli_prepare($link$query)) {

    
/* выполняем запрос */
    
mysqli_stmt_execute($stmt);

    
/* передаем результат */
    
mysqli_stmt_store_result($stmt);

    
printf("Количество строк: %d.\n"mysqli_stmt_num_rows($stmt));

    
/* очищаем результат */
    
mysqli_stmt_free_result($stmt);

    
/* закрываем запрос */
    
mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

 Количество строк: 20. 

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_result_metadata() - Возвращает метаданные результирующей таблицы подготавливаемого запроса
  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными