|
|
mysqli_connect (PHP 5) mysqli_connect (no version information, might be only in CVS) mysqli() -- Открывает новое соединение с сервером MySQL ОписаниеПроцедурный стиль mysqli mysqli_connect ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]] ) Объектно-ориентированный стиль (конструктор): class mysqli { __construct ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]] ) }
Функция mysqli_connect() пытается открыть соединение с
сервером MySQL, работающему на сервере, указанном параметром
host, который может быть именем хоста или IP-адресом.
Передача значения NULL или строки "localhost" в качестве этого
параметра, предполагает подключение к локальному хосту.
При возможности будут использованы каналы (pipes) вместо протокола
TCP/IP. При успешном подключение, функция mysqli_connect()
вернет объект, представляющий соединение с базой данных, или FALSE при неудаче.
Параметры username и
password определяют имя пользователя и пароль с
которыми будет произведено подключение к серверу MySQL. Если пароль не
определен (передан параметр NULL), сервер MySQL предпримет попытку
аутентифицировать пользователя, как такового, запись о котором не имеет
только пароля. Это позволяет использовать одно имя пользователя
с различными правами доступа (в зависимости от того, используется пароль или нет).
Если указан параметр dbname будет выбрана база
данных по-умолчению, которая будет использоваться для выполнения запросов.
Параметры port и socket используются совместно с
параметром host для дополнительного контроля над подключением
к серверу баз данных. Параметр port определяет номер порта для попытки
подключения к серверу MySQL, который его прослушивает, в то время как параметр socket
определяет сокет или именованый канал, которые необходимо использовать для соединения.
Замечание:
Установка параметра socket точно не определяет тип соединения
для использования при подключении к серверу MySQL. Каким образом установлено соединение с базой данных
MySQL определяется параметром host.
Возвращаемые значения
Возвращает объект, представляющий соединение с сервером MySQL или
FALSE, если попытка подключения потерпит неудачу.
ПримерыПример 1. Объектно-ориентированный стиль |
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
if (mysqli_connect_errno()) {
printf("Ошибка подключения: %s\n", mysqli_connect_error());
exit();
}
printf("Информация о хосте: %s\n", $mysqli->host_info);
$mysqli->close();
?>
|
|
Пример 2. Процедурный стиль |
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
if (!$link) {
printf("Ошибка подключения: %s\n", mysqli_connect_error());
exit();
}
printf("Информация о хосте: %s\n", mysqli_get_host_info($link));
mysqli_close($link);
?>
|
|
Результат выполнения данного примера: Информация о хосте: Localhost via UNIX socket |
martin dot velek at gmail dot com
30-Jul-2007 09:53
When you need more(less) timeout, you can use this. This only guarantees that host and port are opened. It is suitable on the very high speed networks(LAN) and where one second is not acceptable.
$timeoutInSeconds can be set to any numeric value
e.g. "1/2", "0.500","0.1","0.01" etc.
--------------------------------------------------------------
function getmicrotime()
{
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
$time_start = getmicrotime();
$fp = fsockopen("$mysqlHost",$mysqlPort, $errno, $errstr,$timeoutInSeconds);
if (!$fp)
{
//timeout mostly
echo "ERR: $errno - $errstr<br>\n";
$time_end = getmicrotime();
$time = $time_end - $time_start;
echo "Timeout $time sekund";
}
else
{
fclose($fp);
}
nonerr gmail.com
06-Jul-2007 06:29
This helped me:
<?php
$db = mysqli_connect($host, $login, $pass, $dbName);
$db->set_charset('utf8');
...
?>
Gazzer
17-Feb-2007 11:52
Yes, it's totally odd that php.ini doesn't seem to allow you to global specify the client connection as utf-8. You might try this in the
my.cnf file
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
It didn't work for me, but others may have better luck. In the end I had to specify in the php code as noted below.
Niel Archer
31-Jan-2007 11:13
A quick word about the connection encoding for this extension. It doesn't appear to be documented anywhere that I can find, but this defaults to latin1 encoding for the connection, regardless of PHP's or MySQL's settings. I run in a completely UTF-8 setup, and spent days trying to discover the cause of corrupted characters from the Db. If, like me, you need to work with other than latin1, use the set_charset function/method to switch to your encoding of choice.
|