П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 178764 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 76464 раз(а).

Учебник HTML.
Просмотров 74558 раз(а).

Руководство по PHP5.
Просмотров 45554 раз(а).

Хостинг через призму DNS.
Просмотров 52559 раз(а).

Подборка текстов стандартных документов.
Просмотров 45587 раз(а).

Учебник PHP - Самоучитель
Просмотров 51803 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 52283 раз(а).

Внешние атаки...
Просмотров 42339 раз(а).

Учебник PHP.
Просмотров 37753 раз(а).

SSI в примерах.
Просмотров 28106 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Глава 8. Интерфейсы для MySQL
Пред.     След.

8.4. Интерфейс C для MySQL
8.4.3. Описание функций интерфейса C

8.4.3.53. mysql_use_result()

MYSQL_RES *mysql_use_result(MYSQL *mysql)

Описание

Функцию mysql_store_result() или mysql_use_result() необходимо вызывать после каждого выполненного запроса, извлекающего данные (SELECT, SHOW, DESCRIBE, EXPLAIN).

Функция mysql_use_result() инициализирует извлечение результирующего набора, но фактически не производит чтение в клиенте подобно тому, как это делает функция mysql_store_result(). Вместо этого каждая строка должна извлекаться индивидуально посредством вызова функции mysql_fetch_row(). При этом методе результат запроса читается непосредственно на сервере без промежуточного хранения его во временной таблице или локальном буфере, что быстрее и требует намного меньше памяти, чем использование функции mysql_store_result(). Клиент будет выделять память только для текущей строки и буфер связи может расти до величины max_allowed_packet байтов.

С другой стороны, функцию mysql_use_result() нельзя использовать, если выполняется много операций по обработке каждой строки на клиентской стороне, или если вывод делается на терминал, на котором пользователь может нажать ^S (остановить вывод).

Это будет ограничивать работу сервера и будет мешать другим потокам в обновлении таблиц, из которых выбираются данные.

При использовании mysql_use_result() необходимо выполнять mysql_fetch_row(), пока не возвратится величина NULL, в противном случае невыбранные строки данного запроса будут возвращены как часть результирующего набора для следующего запроса. Если вы забыли сделать это, то интерфейс C будет выдавать ошибку Commands out of sync; you can't run this command now!

Нельзя использовать функции mysql_data_seek(), mysql_row_seek(), mysql_row_tell(), mysql_num_rows() или mysql_affected_rows() для обработки результата, возвращенного функцией mysql_use_result(), а также нельзя запускать другие запросы, пока функция mysql_use_result() не завершится (однако после выборки всех строк функция mysql_num_rows() будет корректно возвращать количество выбранных строк).

Необходимо вызвать функцию mysql_free_result() сразу же после окончания действий с результирующим набором.

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

Результирующая структура MYSQL_RES с результатами. NULL, если произошла ошибка.

Ошибки

  • CR_COMMANDS_OUT_OF_SYNC

    Команды были выполнены в ненадлежащем порядке.

  • CR_OUT_OF_MEMORY

    Нехватка памяти.

  • CR_SERVER_GONE_ERROR

    Сервер MySQL неожиданно завершил работу.

  • CR_SERVER_LOST

    Соединение с сервером прервалось в процессе данного запроса.

  • CR_UNKNOWN_ERROR

    Произошла неизвестная ошибка.


Назад Начало Главы Начало Раздела Начало Подраздела Вперед

Пред. Глава След. Глава
Глава 7. Типы таблиц MySQL Начало Книги Глава 9. Расширение MySQL


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru