this is because it tries to use sockets with the string localhost this is documented en known
mysqli::real_connect
mysqli_real_connect
(PHP 5)
mysqli::real_connect -- mysqli_real_connect — Opens a connection to a mysql server
Descrizione
Stile orientato agli oggetti
$host
[, string $username
[, string $passwd
[, string $dbname
[, int $port
[, string $socket
[, int $flags
]]]]]]] )Stile procedurale
$link
[, string $host
[, string $username
[, string $passwd
[, string $dbname
[, int $port
[, string $socket
[, int $flags
]]]]]]] )Establish a connection to a MySQL database engine.
This function differs from mysqli_connect():
-
mysqli_real_connect() needs a valid object which has to be created by function mysqli_init().
-
With the mysqli_options() function you can set various options for connection.
-
There is a
flagsparameter.
Elenco dei parametri
-
link -
Solo nello stile procedurale: un identificatore restituito da mysqli_connect() o mysqli_init()
-
host -
Can be either a host name or an IP address. Passing the
NULLvalue or the string "localhost" to this parameter, the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol. -
username -
The MySQL user name.
-
passwd -
If provided or
NULL, the MySQL server will attempt to authenticate the user against those user records which have no password only. This allows one username to be used with different permissions (depending on if a password as provided or not). -
dbname -
If provided will specify the default database to be used when performing queries.
-
port -
Specifies the port number to attempt to connect to the MySQL server.
-
socket -
Specifies the socket or named pipe that should be used.
Nota:
Specifying the
socketparameter will not explicitly determine the type of connection to be used when connecting to the MySQL server. How the connection is made to the MySQL database is determined by thehostparameter. -
flags -
With the parameter
flagsyou can set different connection options:Supported flags Name Description MYSQLI_CLIENT_COMPRESSUse compression protocol MYSQLI_CLIENT_FOUND_ROWSreturn number of matched rows, not the number of affected rows MYSQLI_CLIENT_IGNORE_SPACEAllow spaces after function names. Makes all function names reserved words. MYSQLI_CLIENT_INTERACTIVEAllow interactive_timeout seconds (instead of wait_timeout seconds) of inactivity before closing the connection MYSQLI_CLIENT_SSLUse SSL (encryption) Nota:
For security reasons the
MULTI_STATEMENTflag is not supported in PHP. If you want to execute multiple queries use the mysqli_multi_query() function.
Valori restituiti
Restituisce TRUE in caso di successo, FALSE in caso di fallimento.
Esempi
Example #1 mysqli::real_connect() example
Stile orientato agli oggetti
<?php
$mysqli = mysqli_init();
if (!$mysqli) {
die('mysqli_init failed');
}
if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('Setting MYSQLI_INIT_COMMAND failed');
}
if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}
if (!$mysqli->real_connect('localhost', 'my_user', 'my_password', 'my_db')) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Success... ' . $mysqli->host_info . "\n";
$mysqli->close();
?>
Stile orientato agli oggetti when extending mysqli class
<?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('Setting MYSQLI_INIT_COMMAND failed');
}
if (!parent::options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}
if (!parent::real_connect($host, $user, $pass, $db)) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
}
}
$db = new foo_mysqli('localhost', 'my_user', 'my_password', 'my_db');
echo 'Success... ' . $db->host_info . "\n";
$db->close();
?>
Stile procedurale
<?php
$link = mysqli_init();
if (!$link) {
die('mysqli_init failed');
}
if (!mysqli_options($link, MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('Setting MYSQLI_INIT_COMMAND failed');
}
if (!mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}
if (!mysqli_real_connect($link, 'localhost', 'my_user', 'my_password', 'my_db')) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Success... ' . mysqli_get_host_info($link) . "\n";
mysqli_close($link);
?>
I precedenti esempi visualizzeranno:
Success... MySQL host info: localhost via TCP/IP
Note
Nota:
MySQLnd utilizza sempre il set di caratteri di default del sistema. Questo set di caratteri รจ inviato durante l'handshaking/autenticazione alla connessione.
Libmysql usa il set di caratteri di default impostato nel file my.cnf o attraverso una chiamata esplicita a mysqli_options() prima di chiamare mysqli_real_connect(), ma dopo mysqli_init().
Vedere anche:
- mysqli_connect() - Alias di mysqli::__construct
- mysqli_init() - Initializes MySQLi and returns a resource for use with mysqli_real_connect()
- mysqli_options() - Set options
- mysqli_ssl_set() - Used for establishing secure connections using SSL
- mysqli_close() - Closes a previously opened database connection
