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
NULLou 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
socketne 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_COMPRESSUtilise le protocole compressé MYSQLI_CLIENT_FOUND_ROWSRetourne le nombre de ligne trouvées, pas le nombre de lignes affectées. MYSQLI_CLIENT_IGNORE_SPACEAutorise les espaces entre les noms de fonctions et les arguments. Cela force les noms de fonctions à être des mots réservés. MYSQLI_CLIENT_INTERACTIVEAutorise interactive_timeout secondes (au lieu de wait_timeout secondes) d'inactivité avant de fermer la connexion. MYSQLI_CLIENT_SSLUtilise le chiffrement SSL Note:
Pour des raisons de sécurité, l'option
MULTI_STATEMENTn'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
