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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





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

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

8.4.3.37. mysql_num_fields()

unsigned int mysql_num_fields(MYSQL_RES *result)

или

unsigned int mysql_num_fields(MYSQL *mysql)

Вторая форма не работает на версии MySQL 3.22.24 или более новой. Вместо аргумента в параметре MYSQL* необходимо использовать выражение unsigned int mysql_field_count(MYSQL *mysql)

Описание

Возвращает количество столбцов в результирующем наборе.

Следует отметить, что можно получить искомое количество столбцов с помощью указателя или на результирующий набор, или на дескриптор соединения. Дескриптор соединения необходимо использовать, если функции mysql_store_result() или mysql_use_result() возвратили NULL (и, следовательно, отсутствует указатель результирующего набора). В этом случае можно вызвать функцию mysql_field_count()для определения, может ли функция mysql_store_result()выдать непустой результат. Это дает возможность данной клиентской программе выполнить соответствующее действие без уточнения, был ли данный запрос командой вида SELECT (или похожей на SELECT). В приведенном ниже примере иллюстрируется, как это можно сделать.

See Раздел 8.4.6.1, «Почему после успешных возвратов функции mysql_query() функция mysql_store_result() иногда возвращает NULL.

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

Беззнаковое целое число, представляющее количество полей в результирующем наборе.

Ошибки

Нет.

Пример

MYSQL_RES *result;
unsigned int num_fields;
unsigned int num_rows;

if (mysql_query(&mysql,query_string))
{
// ошибка
}
else // запрос выполнен, обработка возвращенных им данных
{
result = mysql_store_result(&mysql);
if (result) // содержит строки {
num_fields = mysql_num_fields(result);
// извлечение строк, затем вызов mysql_free_result(result)
}
else // mysql_store_result()не вернула ничего; может ли что-либо вернуть?
{
if (mysql_errno(&mysql))
{
fprintf(stderr, "Error: %s\n", mysql_error(&mysql));
}
else if (mysql_field_count(&mysql) == 0)
{
// запрос не возвращает данные
// (запрос не был вида SELECT)
num_rows = mysql_affected_rows(&mysql);
}
}
}

Альтернатива (если известно, что данный запрос должен вернуть результирующий набор) состоит в замене вызова функции mysql_errno(&mysql) на проверку, равна ли 0 функция mysql_field_count(&mysql). Это может случиться, только если что-нибудь происходило не так.


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

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


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





Copyright © 2005-2016 Project.Net.Ru