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