oujood.com

La fonction options() / mysqli_options() en PHP : personnalisez votre connexion à la base de données

La fonction options() / mysqli_options() en PHP vous permet de définir des options supplémentaires de connexion à la base de données. Ces options peuvent être utilisées pour améliorer les performances, la sécurité ou le comportement de votre application.

Définir des options supplémentaires de connexion avec la fonction options() / mysqli_options() en PHP

PHP Version: 5+

PHP Changelog :
PHP 5.5 : Ajout de l'option MYSQLI_SERVER_PUBLIC_KEY
PHP 5.3 : Ajout des options MYSQLI_OPT_INT_AND_FLOAT_NATIVE, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, MYSQLI_OPT_NET_READ_BUFFER_SIZE, et MYSQLI_OPT_SSL_VERIFY_SERVER_CERT

La fonction options() / mysqli_options() est utilisée pour définir des options supplémentaires de connexion et affecter le comportement d'une connexion. Cette fonction peut être appelée plusieurs fois pour définir plusieurs options. mysqli_options() doit être appelée après mysqli_init() et avant mysqli_real_connect().

Définition et utilisation

La syntaxe de la fonction options() / mysqli_options() est la suivante :

mysqli_options(mysqli $link, int $option, mixed $value)

Paramètres:

  • $link : Un objet mysqli représentant la connexion à la base de données.
  • $option : L'option à définir. Peut prendre une des valeurs suivantes :
    • MYSQLI_OPT_CONNECT_TIMEOUT : Le temps d'attente en secondes avant l'échec de la connexion.
    • MYSQLI_OPT_LOCAL_INFILE : Active/désactive l'utilisation de la fonction LOAD LOCAL INFILE.
    • MYSQLI_OPT_READ_DEFAULT_FILE : Le chemin vers le fichier de configuration MySQL.
    • MYSQLI_OPT_READ_DEFAULT_GROUP : Le groupe de configuration MySQL à utiliser.
    • MYSQLI_OPT_SET_CHARSET : Le jeu de caractères à utiliser pour la connexion.
    • MYSQLI_OPT_SSL_CA : Le chemin vers le certificat d'autorité de certification SSL.
    • MYSQLI_OPT_SSL_CAPATH : Le chemin vers le répertoire contenant les certificats d'autorité de certification SSL.
    • MYSQLI_OPT_SSL_CERT : Le chemin vers le certificat SSL du client.
    • MYSQLI_OPT_SSL_KEY : Le chemin vers la clé SSL du client.
    • MYSQLI_OPT_SSL_VERIFY_SERVER_CERT : Vérifie ou non le certificat SSL du serveur.
    • MYSQLI_INIT_COMMAND : Définit une commande à exécuter après la connexion au serveur MySQL
    • MYSQLI_READ_DEFAULT_FILE : Définit les options de lecture à partir du fichier nommé au lieu de my.cnf
    • MYSQLI_READ_DEFAULT_GROUP : Définit les options de lecture du groupe nommé à partir de my.cnf ou du fichier spécifié dans
    • MYSQLI_SERVER_PUBLIC_KEY : Définit le fichier de clé publique RSA utilisé avec l'authentification basée sur SHA-256
  • $value : La valeur à assigner à l'option.

Syntaxe orientée objet

En PHP 7, la fonction options() est disponible dans la classe mysqli. La syntaxe est la suivante :

$link->options($option, $value);

Syntaxe procédurale

La fonction mysqli_options() est disponible dans le module mysqli. La syntaxe est la suivante :

mysqli_options($link, $option, $value);

Exemples

Syntaxe orientée objet

Exemple :     📋 Copier le code

<?php
// Définit le temps d'attente à 10 secondes
$link->options(MYSQLI_OPT_CONNECT_TIMEOUT, 10);

// Active l'utilisation de LOAD LOCAL INFILE
$link->options(MYSQLI_OPT_LOCAL_INFILE, true);

// Définit le jeu de caractères à UTF-8
$link->options(MYSQLI_OPT_SET_CHARSET, 'utf8');
?>

Syntaxe procédurale

Exemple :     📋 Copier le code

<?php
// Définit le temps d'attente à 10 secondes
mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 10);

// Active l'utilisation de LOAD LOCAL INFILE
mysqli_options($link, MYSQLI_OPT_LOCAL_INFILE, true);

// Définit le jeu de caractères à UTF-8
mysqli_options($link, MYSQLI_OPT_SET_CHARSET, 'utf8');
?>

Astuces et conseils

  • Il est important d'appeler mysqli_options() avant mysqli_real_connect(). Si vous appelez mysqli_options() après mysqli_real_connect(), les options ne seront pas appliquées.
  • La fonction mysqli_options() peut être utilisée pour personnaliser le comportement d'une connexion à la base de données. Cela peut être utile pour améliorer les performances ou la sécurité de votre application.

Cas d'utilisation pratique de la fonction options() / mysqli_options() en PHP

Voici quelques cas d'utilisation pour la fonction options() / mysqli_options() en PHP, avec des exemples dans les deux approches (orientée objet et procédurale) pour chaque cas :

Cas 1 : Définir le temps d'attente

L'option MYSQLI_OPT_CONNECT_TIMEOUT définit le temps d'attente en secondes avant l'échec de la connexion. Si la connexion ne s'établit pas dans ce délai, une exception mysqli_sql_exception sera levée.

Exemple orienté objet:

Exemple :     📋 Copier le code

<?php

$link = new mysqli('seveur', 'utilisateur, 'motDePasse', 'ma_base_de_données');

// Définit le temps d'attente à 10 secondes
$link->options(MYSQLI_OPT_CONNECT_TIMEOUT, 10);

// Exécute la connexion
$link->real_connect();
    ?>

Exemple procédural:

Exemple :     📋 Copier le code

<?php

$link = mysqli_init();

// Définit le temps d'attente à 10 secondes
mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 10);

// Exécute la connexion
mysqli_real_connect($link, 'localhost', 'user', 'password', 'database');
    ?>

Cas 2 : Activer l'utilisation de LOAD LOCAL INFILE

L'option MYSQLI_OPT_LOCAL_INFILE active ou désactive l'utilisation de la fonction LOAD LOCAL INFILE. La fonction LOAD LOCAL INFILE permet d'importer des données depuis un fichier local vers la base de données.

Exemple orienté objet:

Exemple :     📋 Copier le code

<?php

$link = new mysqli('seveur', 'utilisateur, 'motDePasse', 'ma_base_de_données');

// Active l'utilisation de LOAD LOCAL INFILE
$link->options(MYSQLI_OPT_LOCAL_INFILE, true);

// Exécute la connexion
$link->real_connect();
    ?>

Exemple procédural:

Exemple :     📋 Copier le code

<?php

$link = mysqli_init();

// Active l'utilisation de LOAD LOCAL INFILE
mysqli_options($link, MYSQLI_OPT_LOCAL_INFILE, true);

// Exécute la connexion
mysqli_real_connect($link, 'localhost', 'user', 'password', 'database');
    ?>

Cas 3 : Définir le jeu de caractères

L'option MYSQLI_OPT_SET_CHARSET définit le jeu de caractères à utiliser pour la connexion. Cette option est importante pour garantir la compatibilité entre les données de la base de données et les données de votre application.

Exemple orienté objet:

Exemple :     📋 Copier le code

<?php

$link = new mysqli('seveur', 'utilisateur, 'motDePasse', 'ma_base_de_données');

// Définit le jeu de caractères à UTF-8
$link->options(MYSQLI_OPT_SET_CHARSET, 'utf8');

// Exécute la connexion
$link->real_connect();
    ?>

Exemple procédural:

Exemple :     📋 Copier le code

<?php

$link = mysqli_init();

// Définit le jeu de caractères à UTF-8
mysqli_options($link, MYSQLI_OPT_SET_CHARSET, 'utf8');

// Exécute la connexion
mysqli_real_connect($link, 'localhost', 'user', 'password', 'database');
    ?>

Ces cas d'utilisation ne sont que quelques exemples parmi de nombreuses autres possibilités. La fonction options() / mysqli_options() peut être utilisée pour personnaliser le comportement de votre connexion à la base de données de nombreuses façons.

Conclusion

La fonction options() / mysqli_options() est un outil utile pour personnaliser le comportement d'une connexion à la base de données. En définissant les options appropriées, vous pouvez améliorer les performances ou la sécurité de votre application.


Voir aussi nos tutoriel :

Balise span

Définit une section dans un document

CSS border-bottom

Définit toutes les propriétés de bordure de fond dans une déclaration

fonction lcfirst

Met le premier caractère en minuscule