mysql_connect - Открывает соединение с сервером MySQL
Вернуться к: MySQL
mysql_connect
(PHP 4, PHP 5)
mysql_connect — Открывает соединение с сервером MySQL
Описание
Открывает новое соединение с сервером MySQL или использует уже существующее.
Список параметров
- server
-
Сервер MySQL. Может также включать номер порта, например, "hostname:port" или путь к локальному сокету, например, ":/path/to/socket" для локального сервера.
Если PHP-директива mysql.default_host не определена (по умолчанию), то значением по умолчанию является 'localhost:3306'. В SQL safe mode этот параметр игнорируется и всегда используется значение 'localhost:3306'.
- username
-
Имя пользователя. Значение по умолчанию определяется директивой mysql.default_user. В SQL safe mode этот параметр будет проигнорирован и будет использован пользователь, владеющий процессом сервера.
- password
-
Пароль. Значение по умолчанию определяется директивой mysql.default_password. В SQL safe mode этот параметр будет проигнорирован и в качестве пароля будет использована пустая строка.
- new_link
-
Если второй вызов функции mysql_connect() произошёл с теми же аргументами, то новое соединение не будет установлено. Вместо этого функция вернёт ссылку на уже установленное соединение. Параметр new_link может заставить функцию mysql_connect() открыть ещё одно соединение, даже если соединение с аналогичными параметрами уже открыто. В SQL safe mode этот параметр игнорируется.
- client_flags
-
Параметр client_flags должен быть комбинацией из следующих констант: 128 (включает обработку LOAD DATA LOCAL), MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE or MYSQL_CLIENT_INTERACTIVE. Подробнее читайте в разделе Клиентские константы MySQL. В SQL safe mode этот параметр игнорируется.
Возвращаемые значения
Возвращает дескриптор соединения с MySQL в случае успешного выполнения или FALSE в случае возникновения ошибки.
Список изменений
| Версия | Описание |
|---|---|
| 4.3.0 | Добавлен параметр client_flags. |
| 4.2.0 | Добавлен параметр new_link. |
Примеры
Пример #1 Пример использования mysql_connect()
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Ошибка соединения: ' . mysql_error());
}
echo 'Успешно соединились';
mysql_close($link);
?>
Пример #2 Пример использования mysql_connect() с синтаксисом hostname:port
<?php
// соединяемся с example.com на порту 3307
$link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password');
if (!$link) {
die('Ошибка соединения: ' . mysql_error());
}
echo 'Успешно соединились';
mysql_close($link);
// соединяемся с localhost на порту 3307
$link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password');
if (!$link) {
die('Ошибка соединения: ' . mysql_error());
}
echo 'Успешно соединились';
mysql_close($link);
?>
Пример #3 Пример использования mysql_connect() с синтаксисом ":/path/to/socket"
<?php
// соединяемся к localhost по сокету, т.е. /tmp/mysql.sock
// вариант 1: не указываем localhost
$link = mysql_connect(':/tmp/mysql', 'mysql_user', 'mysql_password');
if (!$link) {
die('Ошибка соединения: ' . mysql_error());
}
echo 'Успешно соединились';
mysql_close($link);
// вариант 2: указываем localhost
$link = mysql_connect('localhost:/tmp/mysql.sock', 'mysql_user', 'mysql_password');
if (!$link) {
die('Ошибка соединения: ' . mysql_error());
}
echo 'Успешно соединились';
mysql_close($link);
?>
Примечания
Замечание:
При указании параметру server значения "localhost" или "localhost:port" клиентская библиотека MySQL будет пытаться соединиться с локальным сокетом. Если вы всё же хотите использовать TCP/IP, используйте адрес "127.0.0.1" вместо "localhost". Если клиентская библиотека пытается подключиться не к тому локальному сокету, это можно исправить через указание директивы в конфигурации PHP, после чего можно оставлять параметр server пустым.
Замечание:
Соединение с сервером будет закрыто при завершении исполнения скрипта, если только до этого оно не было закрыто с помощью функции mysql_close().
Замечание:
Подавить вывод ошибок можно добавив @ в начало названия функции.
Замечание:
Ошибка "Can't create TCP/IP socket (10106)" (Невозможно создать сокет TCP/IP) обычно означает, что конфигурационная директива variables_order не содержит символ E. В Windows, если в окружение не будет скопирована переменная окружения SYSTEMROOT, то PHP будет испытывать проблемы при загрузке Winsock.
Смотрите также
- mysql_pconnect() - Устанавливает постоянное соединение с сервером MySQL
- mysql_close() - Закрывает соединение с сервером MySQL
Вернуться к: MySQL