|
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_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 |
Дополнительные детали и определение констант 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 без извлечения и буферизации результирующих рядов
| |