PHP-Nuke по-русски    Главная
Начальная
страница
 Клуб
Русский
клуб
 Разделы
Тематические
разделы
 Ссылки
Каталог
сайтов
 Файлы
Каталог
программ
 Школа
Практические
занятия
 Форум
Форумы
поддержки
Учебник РНР
Назад Вперёд

LXIII. Функции MySQL

Эти функции дают доступ к серверам БД MySQL. Информацию о MySQL см. на http://www.mysql.com/

Документация по MySQL находится на http://www.mysql.com/documentation/

Требования

Чтобы иметь возможность работать с этими функциями, вы обязаны скомпилировать РНР с поддержкой MySQL.

Установка

С помощью опции конфигурации --with-mysql вы включаете доступ PHP к БД MySQL. Если вы используете эту опцию без специфицирования пути к MySQL, PHP будет использовать встроенные клиентские библиотеки MySQL. В PHP4 поддержка MySQL всегда включена; Если вы не специфицируете эту опцию конфигурации, используются связанные библиотеки. Пользователи, запускающие другие приложения, которые используют MySQL (например, при запуске PHP 3 и PHP 4 как конкурирующих модулей Аpache, или auth-mysql), всегда должны специфицировать путь к MySQL: --with-mysql=/path/to/mysql. Это заставит PHP использовать клиентские библиотеки, установленные MySQL, исключая любые конфликты.

Предупреждение!

При загрузке этого расширения вместе с расширением recode могут возникать проблемы со стартом и обломом РНР. См. расширение recode.

Установка

Поведение функций MySQL определяется установками в глобальном файле конфигурации php.ini.

Таблица 1. Опции конфигурации MySQL
ИмяПо умолчанию Изменяемая
mysql.allow_persistent"On"PHP_INI_SYSTEM
mysql.max_persistent"-1"PHP_INI_SYSTEM
mysql.max_links "-1"PHP_INI_SYSTEM
mysql.default_portNULLPHP_INI_ALL
mysql.default_socketNULLPHP_INI_ALL
mysql.default_host NULLPHP_INI_ALL
mysql.default_userNULLPHP_INI_ALL
mysql.default_passwordNULLPHP_INI_ALL

Дополнительные детали и определение констант PHP_INI_* см. в ini_set().

Вот краткое описание директив конфигурации.

mysql.allow_persistent boolean

Разрешается ли постоянное соединение с MySQL.

mysql.max_persistent integer

Максимальное количество постоянных MySQL-соединений на процесс.

mysql.max_links integer

Максимальное количество постоянных MySQL-соединений на процесс, включая постоянные соединения.

mysql.default_port string

Номер порта по умолчанию TCP для использования при соединении с сервером БД, если иной порт не специфицирован. Если порт по умолчанию не специфицирован, значение получается из переменной окружения MYSQL_TCP_PORT, вхождения mysql-tcp в /etc/services или константы времени компиляции MYSQL_PORT, в указанном порядке. Win32 используют только константу MYSQL_PORT.

mysql.default_socket string

Имя сокета по умолчанию для использования при соединении с локальным сервером БД, если иное имя сокета не специфицировано.

mysql.default_host string

Хост сервера по умолчанию для использования при соединении с локальным сервером БД, если другой хост не специфицирован. Не примеряется в режиме safe mode.

mysql.default_user string

Имя пользователя по умолчанию для использования при соединении с сервером БД, если иное имя не специфицировано. Не применяется в режиме safe mode.

mysql.default_password string

Пароль по умолчанию для использования при соединении с сервером БД, если иной пароль не специфицирован. Не применяется в режиме safe mode.

Типы ресурсов

Есть два типа ресурсов, используемых в MySQL-модуле. Первый это идентификатор ссылки для соединения с БД, второй - ресурс, содержащий результат выполнения запроса.

Предопределённые константы

Функция mysql_fetch_array() использует константу для различных типов результирующих массивов. Определены следующие константы:

Таблица 2. Константы извлечения MySQL
константазначение
MYSQL_ASSOC Столбцы возвращаются в массиве, содержащем имя поля как индекс массива.
MYSQL_BOTHСтолбцы возвращаются в массиве, содержащем числовой индекс и имя поля как индекс массива.
MYSQL_NUMСтолбцы возвращаются в массиве, содержащем числовой индекс полей. Этот индекс начинается с 0, первого поля результата.
MYSQL_STORE_RESULT Специфицирует, что MySQL-результат должен буферизоваться.
MYSQL_USE_RESULTСпецифицирует, что MySQL-результат не должен буферизоваться.

Примеры

Данный пример показывает, как соединиться с БД, выполнить запрос/query, напечатать результирующие ряды и отсоединиться от БД MySQL.
Пример 1. Пример работы расширения MySQL
<?php
    /* Соединение, выбор БД */
    $link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
        or die("Could not connect");
    print "Connected successfully";
    mysql_select_db("my_database") or die("Could not select database");

    /* Выполнение SQL query */
    $query = "SELECT * FROM my_table";
    $result = mysql_query($query) or die("Query failed");

    /* Печать результатов в HTML */
    print "<table>\n";
    while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
        print "\t<tr>\n";
        foreach ($line as $col_value) {
  print "\t\t<td>$col_value</td>\n";
        }
        print "\t</tr>\n";
    }
    print "</table>\n";

    /* Освобождение resultset */
    mysql_free_result($result);

    /* Закрытие соединения */
    mysql_close($link);
?>

Содержание
mysql_affected_rows - получает количество рядов, задействованных в предыдущей операции MySQL
mysql_change_user - изменяет вошедшего/logged пользователя в активном соединении
mysql_character_set_name - возвращает имя набора символов/character set
mysql_close - закрывает MySQL-соединение
mysql_connect - открывает соединение с MySQL-сервером
mysql_create_db - создаёт БД MySQL
mysql_data_seek - перемещает внутренний результирующий указатель
mysql_db_name - получает результирующие данные
mysql_db_query - отправляет MySQL query
mysql_drop_db - удаляет БД MySQL
mysql_errno - возвращает числовое значение сообщения об ошибке из предыдущей MySQL-операции
mysql_error - возвращает текст сообщения об ошибке из предыдущей MySQL-операции
mysql_escape_string - мнемонизирует/Escapes строку для использования в mysql_query
mysql_fetch_array - извлекает результирующий ряд как ассоциативный массив, числовой массив или оба
mysql_fetch_assoc - извлекает результирующий ряд как ассоциативный массив
mysql_fetch_field - получает информацию столбца из результата и возвращает как объект
mysql_fetch_lengths - получает длину каждого вывода в результате
mysql_fetch_object - извлекает результирующий ряд как объект
mysql_fetch_row - получает результирующий ряд в перечислимом массиве
mysql_field_flags - получает флаги, ассоциированные со специфицированным полем в результате
mysql_field_len - возвращает длину специфицированного поля в результате
mysql_field_name - получает имя специфицированного поля в результате
mysql_field_seek - устанавливает результирующий указатель на смещение специфицированного поля
mysql_field_table - получает имя таблицы, в которой находится специфицированное поле
mysql_field_type - получает тип специфицированного поля в результате
mysql_free_result - освобождает результирующую память
mysql_get_client_info - получает информацию о клиенте MySQL
mysql_get_host_info - получает информацию о хосте MySQL
mysql_get_proto_info - получает информацию о MySQL-протоколе
mysql_get_server_info - получает информацию о MySQL-сервере
mysql_info - получает информацию о самом последнем запросе
mysql_insert_id - получает id, сгенерированный предыдущей операцией INSERT
mysql_list_dbs - список БД, доступных на MySQL-сервере
mysql_list_fields - список результирующих полей MySQL
mysql_list_processes - список процессов MySQL
mysql_list_tables - список таблиц в БД MySQL
mysql_num_fields - получает количество полей в результате
mysql_num_rows - получает количество рядов в результате
mysql_pconnect - открывает постоянное соединение с MySQL-сервером
mysql_ping - устанавливает Ping-соединение с сервером или соединяется повторно, если соединения нет
mysql_query - отправляет MySQL query
mysql_real_escape_string - мнемонизирует/Escapes специальные символы в строке для использования в SQL-операторе, учитывая текущий charset соединения
mysql_result - получает результирующие данные
mysql_select_db - выбирает БД MySQL
mysql_stat - получает текущий системный статус
mysql_tablename - получает имя таблицы поля
mysql_thread_id - возвращает id текущего потока
mysql_unbuffered_query - отправляет SQL query в MySQL без извлечения и буферизации результирующих рядов

Назад Оглавление Вперёд
msql Вверх mysql_affected_rows

© RigaNet - Internet studio
For Web site issues, contact the Web master.

Rambler's Top100 Рейтинг@Mail.ru RigaNet