(PHP 5)
mysqli::__construct -- mysqli_connect — Ouvre une connexion à un serveur MySQL
Style orienté objet
Style procédural
Ouvre une connexion au serveur MySQL de l'hôte host qui peut être un nom d'hôte ou une adresse IP.
Peut être un nom d'hôte ou une adresse IP. Si vous passez la valeur NULL ou la chaîne "localhost" à ce paramètre, l'hôte local est sous-entendu. Lorsque c'est possible, les sockets seront utilisées au lieu du protocole TCP/IP.
Préfixer l'hôte par p: ouvre une connexion persistante mysqli_change_user() est automatiquement appelé sur les connexions qui sont utilisées dans le pool de connexions.
Le nom d'utilisateur MySQL.
Si le mot de passe n'est pas indiqué (la valeur NULL est passée), le serveur MySQL essaiera d'identifier l'utilisateur en étudiant que les enregistrements où les utilisateurs n'ont pas de mot de passe. Cela permet à un utilisateur de jouir de plusieurs permissions (selon que l'on fournit le mot de passe ou non).
Si fourni, spécifiera la base de données par défaut à utiliser lors de l'exécution de requêtes.
Spécifie le numéro du port pour la connexion au serveur MySQL.
Spécifie le socket ou le nom du tunnel à utiliser.
Note:
Spécifier le paramètre socket ne déterminera pas explicitement le type de connexion qui sera utilisé lors de la connexion au serveur MySQL. Cela est déterminé par le paramètre host.
Retourne un objet qui représente la connexion au serveur MySQL.
Version | Description |
---|---|
5.3.0 | Ajout des connexions persistantes. |
Exemple #1 Exemple avec mysqli::__construct()
Style orienté objet
<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
/*
* Ceci est le style POO "officiel"
* MAIS $connect_error était erroné jusqu'en PHP 5.2.9 et 5.3.0.
*/
if ($mysqli->connect_error) {
die('Erreur de connexion (' . $mysqli->connect_errno . ') '
. $mysqli->connect_error);
}
/*
* Utilisez cette syntaxe de $connect_error si vous devez assurer
* la compatibilité avec les versions de PHP avant 5.2.9 et 5.3.0.
*/
if (mysqli_connect_error()) {
die('Erreur de connexion (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Succès... ' . $mysqli->host_info . "\n";
$mysqli->close();
?>
Style orienté objet lors d'une extension de la classe mysqli
<?php
class foo_mysqli extends mysqli {
public function __construct($host, $user, $pass, $db) {
parent::__construct($host, $user, $pass, $db);
if (mysqli_connect_error()) {
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();
?>
Style procédural
<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
if (!$link) {
die('Erreur de connexion (' . 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... Localhost via UNIX socket
Note:
Uniquement pour la syntaxe orientée objet : pour vérifier si la connexion a échoué, utilisez la fonction mysqli_connect_error() ou la propriété mysqli->connect_error comme dans l'exemple ci-dessus.
Note:
S'il est nécessaire de configurer des options, telles que le délai de connexion, mysqli_real_connect() doit être utilisé.
Note:
Appeler le constructeur sans paramètre a le même effet qu'appeler mysqli_init().
Note:
L'erreur "Can't create TCP/IP socket (10106)" signifie à généralement que la directive de configuration variables_order ne contient pas le caractère E. Sous Windows, si l'environnement n'est pas copié, la variable d'environnement SYSTEMROOT ne sera pas disponible et PHP aura des soucis pour charger Winsock.