mysqli::real_connect
mysqli_real_connect
(PHP 5)
mysqli::real_connect -- mysqli_real_connect — Устанавливает соединение с сервером mysql
Описание
Объектно-ориентированный стиль
$host
[, string $username
[, string $passwd
[, string $dbname
[, int $port
[, string $socket
[, int $flags
]]]]]]] )Процедурный стиль
$link
[, string $host
[, string $username
[, string $passwd
[, string $dbname
[, int $port
[, string $socket
[, int $flags
]]]]]]] )Устанавливает соединение с СУБД MySQL.
Эта функция отличается от mysqli_connect():
-
Для работы mysqli_real_connect() необходим действительный объект, созданный функцией mysqli_init().
-
С помощью функции mysqli_options() можно задать различные настройки подключения.
-
Параметр
flags
.
Список параметров
-
link
-
Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()
-
host
-
Может быть именем хоста или IP адресом. Передача
NULL
или строки "localhost" этому параметру означает, что в качестве хоста будет использоваться локальная машина, на которой запущен скрипт. Если есть такая возможность, будут использоваться пайпы вместо протокола TCP/IP. -
username
-
Имя пользователя MySQL.
-
passwd
-
Если не задан или равен
NULL
, MySQL сервер в первую очередь попытается аутентифицировать пользователя в принципе имеющего пароль, а затем будет искать среди пользователей, у которых нет пароля. Такой подход позволяет одному пользователю назначать различные права (в зависимости от того, задан пароль или нет). -
dbname
-
Если параметр задан, его значение будет использоваться в качестве имени базы данных по умолчанию при выполнении запросов.
-
port
-
Specifies the port number to attempt to connect to the MySQL server.
-
socket
-
Задает номер порта для подключения к серверу MySQL.
Замечание:
Передача параметра
socket
не будет явно задавать тип соединения при подключении к серверу MySQL. То, как будет устанавливаться соединение с MySQL сервером, определяется параметромhost
. -
flags
-
С помощью параметра
flags
можно задать некоторые настройки соединения:Поддерживаемые флаги Имя Описание MYSQLI_CLIENT_COMPRESS
Использовать протокол сжатия MYSQLI_CLIENT_FOUND_ROWS
возвращать количество строк, подошедших условиям выборки, вместо количества затронутых запросом строк MYSQLI_CLIENT_IGNORE_SPACE
Допускать пробелы после имен функций. Делает все имена функций зарезервированными словами. MYSQLI_CLIENT_INTERACTIVE
Допускать interactive_timeout секунд (вместо wait_timeout) простоя, прежде чем закрыть соединение MYSQLI_CLIENT_SSL
Использовать SSL (шифрование) Замечание:
По причинам безопасности флаг
MULTI_STATEMENT
не поддерживается в PHP. Если необходимо выполнять мультизапросы, используйте функцию mysqli_multi_query().
Возвращаемые значения
Возвращает TRUE
в случае успешного завершения или FALSE
в случае возникновения ошибки.
Примеры
Пример #1 Пример использования mysqli::real_connect()
Объектно-ориентированный стиль
<?php
$mysqli = mysqli_init();
if (!$mysqli) {
die('mysqli_init завершилась провалом');
}
if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('Установка MYSQLI_INIT_COMMAND завершилась провалом');
}
if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Установка MYSQLI_OPT_CONNECT_TIMEOUT завершилась провалом');
}
if (!$mysqli->real_connect('localhost', 'my_user', 'my_password', 'my_db')) {
die('Ошибка подключения (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Выполнено... ' . $mysqli->host_info . "\n";
$mysqli->close();
?>
Объектно-ориентированный стиль при расширении класса mysqli
<?php
class foo_mysqli extends mysqli {
public function __construct($host, $user, $pass, $db) {
parent::init();
if (!parent::options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('Установка MYSQLI_INIT_COMMAND завершилась провалом');
}
if (!parent::options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Установка MYSQLI_OPT_CONNECT_TIMEOUT завершилась провалом');
}
if (!parent::real_connect($host, $user, $pass, $db)) {
die('Ошибка подключения (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
}
}
$db = new foo_mysqli('localhost', 'my_user', 'my_password', 'my_db');
echo 'Выполнено... ' . $db->host_info . "\n";
$db->close();
?>
Процедурный стиль
<?php
$link = mysqli_init();
if (!$link) {
die('mysqli_init завершилась провалом');
}
if (!mysqli_options($link, MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('Установка MYSQLI_INIT_COMMAND завершилась провалом');
}
if (!mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Установка MYSQLI_OPT_CONNECT_TIMEOUT завершилась провалом');
}
if (!mysqli_real_connect($link, 'localhost', 'my_user', 'my_password', 'my_db')) {
die('Ошибка подключения (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Выполнено... ' . mysqli_get_host_info($link) . "\n";
mysqli_close($link);
?>
Результат выполнения данных примеров:
Выполнено... MySQL host info: localhost via TCP/IP
Примечания
Замечание:
MySQLnd всегда подразумевает кодировку, которую использует по умолчанию сервер. Эта кодировка передается во время установки соединения/авторизации, которе использует mysqlnd.
Libmysqlclient по умолчанию использует кодировку, установленную в my.cnf или специальным вызовом mysqli_options() до использования mysqli_real_connect(), но после mysqli_init().
Смотрите также
- mysqli_connect() - Псевдоним mysqli::__construct
- mysqli_init() - Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()
- mysqli_options() - Задание настроек
- mysqli_ssl_set() - Используется для установления безопасных соединений, используя SSL
- mysqli_close() - Закрывает ранее открытое соединение с базой данных
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с базами данных
- Расширения для работы с базами данных отдельных производителей
- MySQL Drivers and Plugins
- Улучшенный модуль MySQL
- Функция mysqli::$affected_rows() - Получает число строк, затронутых предыдущей операцией MySQL
- Функция mysqli::autocommit() - Включает или отключает автоматическую фиксацию изменений базы данных
- Функция mysqli::begin_transaction() - Starts a transaction
- Функция mysqli::change_user() - Позволяет сменить пользователя подключенного к базе данных
- Функция mysqli::character_set_name() - Возвращает кодировку по умолчанию, установленную для соединения с БД
- Функция mysqli::$client_info() - Получает информацию о клиенте MySQL
- Функция mysqli::$client_version() - Возвращает информацию о клиенте MySQL в виде строки
- Функция mysqli::close() - Закрывает ранее открытое соединение с базой данных
- Функция mysqli::commit() - Фиксирует текущую транзакцию
- Функция mysqli::$connect_errno() - Возвращает код ошибки последней попытки соединения
- Функция mysqli::$connect_error() - Возвращает описание последней ошибки подключения
- Функция mysqli::__construct() - Устанавливает новое соединение с сервером MySQL
- Функция mysqli::debug() - Выполняет процедуры отладки
- Функция mysqli::dump_debug_info() - Журналирование отладочной информации
- Функция mysqli::$errno() - Возвращает код ошибки последнего вызова функции
- Функция mysqli::$error_list() - Возвращает список ошибок выполнения последней запущенной команды
- Функция mysqli::$error() - Возвращает строку с описанием последней ошибки
- Функция mysqli::$field_count() - Возвращает число столбцов, затронутых последним запросом
- Функция mysqli::get_charset() - Возвращает набор символов в виде объекта
- Функция mysqli::get_client_info() - Получает информацию о клиенте MySQL
- Функция mysqli_get_client_stats() - Возвращает статистику клиента для каждого процесса
- Функция mysqli_get_client_version() - Возвращает информацию о клиенте MySQL в виде строки
- Функция mysqli::get_connection_stats() - Возвращает статистику соединения с клиентом
- Функция mysqli::$host_info() - Возвращает строку, содержащую тип используемого соединения
- Функция mysqli::$protocol_version() - Возвращает версию используемого MySQL протокола
- Функция mysqli::$server_info() - Возвращает версию MySQL сервера
- Функция mysqli::$server_version() - Возвращает версию сервера MySQL, представленую в виде integer
- Функция mysqli::get_warnings() - Получает результат SHOW WARNINGS
- Функция mysqli::$info() - Извлекает информацию о последнем выполненном запросе
- mysqli::init
- Функция mysqli::$insert_id() - Возвращает автоматически генерируемый ID, используя последний запрос
- Функция mysqli::kill() - Запрос для сервера завершить выполнение процесса MySQL
- Функция mysqli::more_results() - Проверка, есть ли еще результаты в мультизапросе
- Функция mysqli::multi_query() - Выполняет запрос к базе данных
- Функция mysqli::next_result() - Подготовка следующего доступного результирующего набора из multi_query
- Функция mysqli::options() - Задание настроек
- mysqli::ping
- Функция mysqli::poll() - Опрос подключений
- Функция mysqli::prepare() - Подготавливает SQL выражение к выполнению
- Функция mysqli::query() - Выполняет запрос к базе данных
- Функция mysqli::real_connect() - Устанавливает соединение с сервером mysql
- mysqli::real_escape_string
- Функция mysqli::real_query() - Выполнение SQL запроса
- Функция mysqli::reap_async_query() - Получение результата асинхронного запроса
- Функция mysqli::refresh() - Обновление
- Функция mysqli::release_savepoint() - Rolls back a transaction to the named savepoint
- Функция mysqli::rollback() - Откат текущей транзакции
- Функция mysqli::rpl_query_type() - Возвращает RPL тип запроса
- Функция mysqli::savepoint() - Set a named transaction savepoint
- Функция mysqli::select_db() - Устанавливает базу данных для выполняемых запросов
- Функция mysqli::send_query() - Отправка запроса и возврат
- Функция mysqli::set_charset() - Задает набор символов по умолчанию
- Функция mysqli::set_local_infile_default() - Отмена привязки callback-функции для команды load local infile
- Функция mysqli::set_local_infile_handler() - Задает callback-функцию для команды LOAD DATA LOCAL INFILE
- Функция mysqli::$sqlstate() - Возвращает код состояния SQLSTATE последней MySQL операции
- Функция mysqli::ssl_set() - Используется для установления безопасных соединений, используя SSL
- Функция mysqli::stat() - Получение информации о текущем состоянии системы
- mysqli::stmt_init
- Функция mysqli::store_result() - Передает результирующий набор последнего запроса
- Функция mysqli::$thread_id() - Возвращает ID процесса текущего подключения
- Функция mysqli::thread_safe() - Показывает, безопасна ли работа с процессами
- Функция mysqli::use_result() - Готовит результирующий набор на сервере к использованию
- Функция mysqli::$warning_count() - Возвращает количество предупреждений из последнего запроса заданного подключения
Коментарии
Notice that when using "localhost" as hostname the port option might be ignored.
If you wish to connect thru a different port than default, substitute "127.0.0.1" for localhost.
this is because it tries to use sockets with the string localhost this is documented en known