mysqli::real_connect
mysqli_real_connect
(PHP 5)
mysqli::real_connect -- mysqli_real_connect — Ouvre une connexion à un serveur MySQL
Description
Style orienté objet
$host
[, string $username
[, string $passwd
[, string $dbname
[, int $port
[, string $socket
[, int $flags
]]]]]]] )Style procédural
$link
[, string $host
[, string $username
[, string $passwd
[, string $dbname
[, int $port
[, string $socket
[, int $flags
]]]]]]] )mysqli_real_connect() établit une connexion avec un serveur MySQL.
Cette fonction diffère de mysqli_connect() :
-
mysqli_real_connect() a besoin d'un objet créé avec mysqli_init().
-
Avec la fonction mysqli_options(), vous pouvez configurer différentes options de connexion.
-
Il y a un paramètre supplémentaire
flags
.
Liste de paramètres
-
link
-
Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()
-
host
-
Peut-être un nom d'hôte ou une adresse IP. En utilisant la valeur
NULL
ou la chaîne "localhost", l'hôte local est utilisé. Lorsque c'est possible, les pipes seront utilisés à la place de la pile TCP/IP. -
username
-
Le nom d'utilisateur MySQL.
-
passwd
-
Si non fourni ou
NULL
, le serveur MySQL tentera de réaliser l'identification avec les utilisateurs sans mot de passe. Cela permet à un nom d'utilisateur d'être utilisé avec différentes droits, suivant que le mot de passe est fourni ou pas. -
dbname
-
Si fourni, ce paramètre indique le nom de la base de données de travail par défaut.
-
port
-
Spécifie le numéro de port à utiliser pour se connecter au serveur MySQL.
-
socket
-
Spécifie le socket ou le pipe nommé qui doit être utilisé pour établir la connexion.
Note:
Spécifier explicitement le paramètre
socket
ne détermine pas le type de méthode utilisée lors de la connexion à MySQL. La méthode est déterminée par le paramètrehost
. -
flags
-
Avec le paramètre
flags
, vous pouvez configurer différentes directives de connexion :Options supportées Nom Description MYSQLI_CLIENT_COMPRESS
Utilise le protocole compressé MYSQLI_CLIENT_FOUND_ROWS
Retourne le nombre de ligne trouvées, pas le nombre de lignes affectées. MYSQLI_CLIENT_IGNORE_SPACE
Autorise les espaces entre les noms de fonctions et les arguments. Cela force les noms de fonctions à être des mots réservés. MYSQLI_CLIENT_INTERACTIVE
Autorise interactive_timeout secondes (au lieu de wait_timeout secondes) d'inactivité avant de fermer la connexion. MYSQLI_CLIENT_SSL
Utilise le chiffrement SSL Note:
Pour des raisons de sécurité, l'option
MULTI_STATEMENT
n'est pas supportée en PHP. Si vous voulez exécuter plusieurs commandes, utilisez la fonction mysqli_multi_query().
Valeurs de retour
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient.
Exemples
Exemple #1 Exemple avec mysqli::real_connect()
<?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 'Succès... ' . $mysqli->host_info . "\n"; $mysqli->close(); ?>
<?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 'Succès... ' . $db->host_info . "\n"; $db->close(); ?>
<?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 'Succès... ' . mysqli_get_host_info($link) . "\n"; mysqli_close($link); ?>
Les exemples ci-dessus vont afficher :
Succès... MySQL host info: localhost via TCP/IP
Notes
Note:
MySQLnd s'occupe toujours du jeu de caractères par défaut du serveur. Celui-ci est envoyé durant la négociation de la connexion ou l'authentification.
Libmysqlclient utilise le jeu de caractères par défaut de my.cnf ou via par un appel à mysqli_options() avant mysqli_real_connect(), mais après mysqli_init().
Voir aussi
- mysqli_connect() - Alias de mysqli::__construct
- mysqli_init() - Initialise MySQLi et retourne une ressource à utiliser avec mysqli_real_connect()
- mysqli_options() - Définit les options
- mysqli_ssl_set() - Utilisée pour établir une connexion sécurisée avec SSL
- mysqli_close() - Ferme une connexion