|
LXXXVII. Функции СУБД MySQL
Расширение позволяет вам работать с СУБД MySQL.
За информацией о MySQL обращайтесь к http://www.mysql.com/.
Документация MySQL находится по адресу http://dev.mysql.com/doc/.
Чтобы работать с функциями, вы должны скомпилировать PHP с поддержкой
MySQL.
Используя директиву --with-mysql[=DIR]
вы можете включить в PHP поддержку СУБД MySQL.
В PHP 4, директива --with-mysql
включена по умолчанию. Чтобы отключить её, используйте директиву
конфигурации --without-mysql.
Кроме того, в PHP 4, при включении директивы без указания пути к папке установки
MySQL, PHP будет использовать встроенную библиотеку
MySQL-клиента. В Windows специальные DLL отсутствуют, клиент всегда встроен
в PHP4.
При использовании приложений использующих MySQL (к примеру, auth-mysql) не
стоит использовать встроенную библиотеку -- укажите путь к папке установки
MySQL, что будет выглядеть примерно так: --with-mysql=/path/to/mysql.
Это заставит PHP использовать библиотеку, установленную MySQL,
что позволит избежать любых конфликтов.
В PHP 5 поддержка MySQL больше не включена по умолчанию, кроме того в нём
отсутствует встроенная библиотека-клиент. Подробнее о причине можно
прочитать в
FAQ.
Расширение работает с MySQL версий >= 4.1.0, но не эксплуатирует
всю возможную функциональность этих версий.
Для этого используйте MySQLi.
Внимание |
Сбои в работе PHP могут иметь место при загрузке
совместно этого расширения и расширения для работы с библиотекой GNU Recode.
За дополнительной информацией обращайтесь к разделу о расширении для recode.
|
Замечание:
Если вам требуется поддержка кодировок (отличных от latin, установленной по умолчанию),
вам придётся установить внешнюю библиотеку, скомпилированную с их
поддержкой.
Поведение этих функций зависит от установок в 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_port | NULL | PHP_INI_ALL | mysql.default_socket | NULL | PHP_INI_ALL | mysql.default_host | NULL | PHP_INI_ALL | mysql.default_user | NULL | PHP_INI_ALL | mysql.default_password | NULL | PHP_INI_ALL | mysql.connect_timeout | "0" | PHP_INI_SYSTEM |
За дальнейшей информацией и значениями PHP_INI_* констант обращайтесь к
ini_set().
Краткое разъяснение конфигурационных
директив.
- mysql.allow_persistent
логическое
Позволять ли
постоянные соединения
с MySQL.
- mysql.max_persistent
целое
Максимальное количество постоянных соединений на один процесс.
- mysql.max_links
целое
Максимальное количество соединений с MySQL на один процесс, включая
постоянные соединения.
- mysql.default_port
строка
TCP-порт, используемый для соединения с базой данных по умолчанию (если
не был указан другой). Если эта директива опущена, порт будет взят из
переменной среды MYSQL_TCP_PORT, значения
mysql-tcp в /etc/services или константы
MYSQL_PORT, указанной при компиляции, в указанном порядке.
Win32 использует только константу MYSQL_PORT.
- mysql.default_socket
строка
Тип сокета, используемого для соединения с локальной базой данных, если не
был указан другой.
- mysql.default_host
строка
Адрес сервера, используемый для соединения с базой данных, если не указан
другой. Не работает в
безопасном режиме.
- mysql.default_user
строка
Имя пользователя, используемое для соединения с базой данных, если не
указано другое. Не работает в
безопасном режиме.
- mysql.default_password
строка
Пароль, используемый для соединения с базой данных, если не указан
другой. Не работает в
безопасном режиме.
- mysql.connect_timeout
целое
Время ожидания овета до разрыва соединения в секундах. Linux также использует это значение
при ожидании первого ответа от сервера.
Модуль MySQL исползует два дополнительных типа указателей. Первый
является указателем на соединение с базой данных, второй указывает на
ресурс, содержащий результат запроса.
Перечисленные ниже константы определены данным расширением и могут быть
доступны только в том случае, если PHP был собран с
поддержкой этого расширения или же в том случае, если
данное расширение подгружается во время выполнения.
Начиная с PHP 4.3.0 можно указать дополнительные флаги для функций
mysql_connect() и mysql_pconnect()
functions. Предопределены следующие константы:
Таблица 2. MySQL константы константа | описание |
---|
MYSQL_CLIENT_COMPRESS | использовать протокол сжатия | MYSQL_CLIENT_IGNORE_SPACE | Позволяет вставлять пробелы после имён функций | MYSQL_CLIENT_INTERACTIVE | Ждать interactive_timeout секунд (виесто wait_timeout)
бездействия, до закрытия соединения. |
Функция mysql_fetch_array() использует константы для
определения типа возвращаемого массива. Предопределены следующие константы:
Таблица 3. Константы выборки MySQL константа | описание |
---|
MYSQL_ASSOC |
Результат возвращается в ассоциативном массиве с индексами под именами
колонок.
| MYSQL_BOTH |
Результат возвращается в массиве, содержащем как численные индексы, так
и индексы под именами колонок.
| MYSQL_NUM |
Результат возвращается в массиве, содержащем численные индексы. Индексы
стартуют с 0 (0 содержит первую колонку).
|
Этот пример показывает, как соединиться с базой данных, выполнить запрос,
распечатать результат и отсоединиться.
Пример 1. Пример работы с MySQL
<?php /* Соединяемся, выбираем базу данных */ $link = mysql_connect("mysql_host", "mysql_user", "mysql_password") or die("Could not connect : " . mysql_error()); print "Connected successfully"; mysql_select_db("my_database") or die("Could not select database");
/* Выполняем SQL-запрос */ $query = "SELECT * FROM my_table"; $result = mysql_query($query) or die("Query failed : " . mysql_error());
/* Выводим результаты в 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";
/* Освобождаем память от результата */ mysql_free_result($result);
/* Закрываем соединение */ mysql_close($link); ?>
|
|
| |