LXIV. Extension MySQL améliorée

Introduction

L'extension mysqli vous permet d'accéder aux fonctionnalités fournies par MySQL 4.1 et plus. Plus d'informations sur le serveur de bases de données MySQL peuvent être trouvées sur http://www.mysql.com/

La documentation de MySQL peut être trouvée sur http://www.mysql.com/documentation/.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Pré-requis

Pour faire fonctionner ces fonctions, vous devez compiler PHP avec le support de l'extension MySQLi.

Note : L'extension MySQLi est conçue pour fonctionner avec la version 4.1 ou plus de MySQL. Pour les versions plus anciennes, voyez la documentation de l'extension mysql.

Installation

Pour installer l'extension mysqli pour PHP, utilisez l'option de configuration --with-mysqli=mysql_config_pathmysql_config_path représente l'endroit où se trouve le programme mysql_config qui accompagne les versions de MySQL supérieures à la 4.1. Désactivez aussi l'extension standard MySQL (qui est activée par défaut) en utilisant aussi l'option de configuration --without-mysql. Si vous voulez installer l'extension standard mysql en même temps que l'extension mysqli, la librairie embarquée libmysql distribuée avec PHP ne peut être utilisée. Utilisez à la place les librairies clientes installées par MySQL avec des versions inférieures à la 4.1. Cela forcera PHP à utiliser les librairies du client installées par MySQL pour éviter les conflits.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration MySQLi

NomPar défautModifiable
mysqli.max_links"-1"PHP_INI_SYSTEM
mysqli.default_portNULLPHP_INI_ALL
mysqli.default_socketNULLPHP_INI_ALL
mysqli.default_hostNULLPHP_INI_ALL
mysqli.default_userNULLPHP_INI_ALL
mysqli.default_pwNULLPHP_INI_ALL
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à ini_set().

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysqli.max_links integer

Le nombre maximal de connexions MySQL par processus, incluant les connexions persistantes.

mysqli.default_port string

Le numéro par défaut de port TCP à utiliser lors de la connexion au serveur si aucun autre port n'est fourni. Si il n'est pas défini, le port sera obtenu à partir de la variable d'environnement MYSQL_TCP_PORT, l'entrée mysql-tcp dans /etc/services ou la constante de compilation MYSQL_PORT, dans cet ordre. Win32 n'utilisera que la constante MYSQL_PORT.

mysqli.default_socket string

Le nom par défaut de la socket à utiliser lors des connexions locales au serveur si aucun autre nom n'est fourni.

mysqli.default_host string

Le serveur par défaut à utiliser lors de la connexion à un serveur si aucun autre hôte n'est fourni. Ne s'applique pas avec le safe mode.

mysqli.default_user string

Le nom d'utilisateur par défaut à utiliser lors de la connexion à un serveur si aucun autre nom n'est fourni. Ne s'applique pas avec le safe mode.

mysqli.default_password string

Le mot de passe par défaut à utiliser lors de la connexion à un serveur si aucun autre mot de passe n'est fourni. Ne s'applique pas avec le safe mode.

Types de ressources

mysqli_link

Représente une connexion entre PHP et une base de données MySQL.

mysqli_stmt

Représente une commande préparée.

mysqli_result

Représente le jeu de résultats obtenu d'une requête sur la base de données.

Constantes prédefinies

Tableau 2. Constantes MySQLi

NomDescription
MYSQLI_READ_DEFAULT_GROUP (integer)  
MYSQLI_READ_DEFAULT_FILE (integer)  
MYSQLI_OPT_CONNECT_TIMEOUT (integer)  
MYSQLI_OPT_LOCAL_INFILE (integer)  
MYSQLI_INIT_COMMAND (integer)  
MYSQLI_CLIENT_SSL (integer)  
MYSQLI_CLIENT_COMPRESS (integer)  
MYSQLI_CLIENT_INTERACTIVE (integer)  
MYSQLI_CLIENT_IGNORE_SPACE (integer)  
MYSQLI_CLIENT_NO_SCHEMA (integer)  
MYSQLI_CLIENT_MULTI_QUERIES (integer)  
MYSQLI_STORE_RESULT (integer)  
MYSQLI_USE_RESULT (integer)  
MYSQLI_ASSOC (integer)  
MYSQLI_NUM (integer)  
MYSQLI_BOTH (integer)  
MYSQLI_NOT_NULL_FLAG (integer)  
MYSQLI_PRI_KEY_FLAG (integer)  
MYSQLI_UNIQUE_KEY_FLAG (integer)  
MYSQLI_MULTIPLE_KEY_FLAG (integer)  
MYSQLI_BLOB_FLAG (integer)  
MYSQLI_UNSIGNED_FLAG (integer)  
MYSQLI_ZEROFILL_FLAG (integer)  
MYSQLI_AUTO_INCREMENT_FLAG (integer)  
MYSQLI_TIMESTAMP_FLAG (integer)  
MYSQLI_SET_FLAG (integer)  
MYSQLI_NUM_FLAG (integer)  
MYSQLI_PART_KEY_FLAG (integer)  
MYSQLI_GROUP_FLAG (integer)  
MYSQLI_TYPE_DECIMAL (integer)  
MYSQLI_TYPE_TINY (integer)  
MYSQLI_TYPE_SHORT (integer)  
MYSQLI_TYPE_LONG (integer)  
MYSQLI_TYPE_FLOAD (integer)  
MYSQLI_TYPE_DOUBLE (integer)  
MYSQLI_TYPE_NULL (integer)  
MYSQLI_TYPE_TIMESTAMP (integer)  
MYSQLI_TYPE_LONGLONG (integer)  
MYSQLI_TYPE_INT24 (integer)  
MYSQLI_TYPE_DATE (integer)  
MYSQLI_TYPE_TIME (integer)  
MYSQLI_TYPE_DATETIME (integer)  
MYSQLI_TYPE_YEAR (integer)  
MYSQLI_TYPE_NEWDATE (integer)  
MYSQLI_TYPE_ENUM (integer)  
MYSQLI_TYPE_SET (integer)  
MYSQLI_TYPE_TINY_BLOB (integer)  
MYSQLI_TYPE_MEDIUM_BLOB (integer)  
MYSQLI_TYPE_LONG_BLOB (integer)  
MYSQLI_TYPE_BLOB (integer)  
MYSQLI_TYPE_VAR_STRING (integer)  
MYSQLI_TYPE_STRING (integer)  
MYSQLI_TYPE_CHAR (integer)  
MYSQLI_TYPE_INTERVAL (integer)  
MYSQLI_TYPE_GEOMETRY (integer)  
MYSQLI_BIND_STRING (integer)  
MYSQLI_BIND_INT (integer)  
MYSQLI_BIND_DOUBLE (integer)  
MYSQLI_BIND_SEND_DATA (integer)  
MYSQLI_RPL_MASTER (integer)  
MYSQLI_RPL_SLAVE (integer)  
MYSQLI_RPL_ADMIN (integer)  
MYSQLI_NEED_DATA (integer)  
MYSQLI_NO_DATA (integer)  
MYSQLI_PR_REPORT_STDERR (integer)  
MYSQLI_PR_REPORT_PORT (integer)  
MYSQLI_PR_REPORT_FILE (integer)  
Table des matières
mysqli_affected_rows --  Retourne le nombre de ligne affectées par la dernière opération MySQL
mysqli_autocommit -- Active ou désactive le mode auto-commit
mysqli_bind_param -- Lie des variables à une requête préparée
mysqli_bind_result --  Lie des variables à une requête préparée pour le stockage de résultat
mysqli_change_user -- Change l'utilisateur de la connexion spécifiée
mysqli_character_set_name -- Retourne le jeu de caractères courant pour la connexion
mysqli_close -- Ferme une connexion
mysqli_commit -- Valide la transaction courante
mysqli_connect -- Ouvre une connexion à un serveur MySQL
mysqli_data_seek -- Déplace le pointeur interne de résultat
mysqli_debug -- Effectue des actions de débogage
mysqli_disable_reads_from_master -- 
mysqli_disable_rpl_parse -- 
mysqli_dump_debug_info -- Ecrit les informations de débogage dans le log
mysqli_enable_reads_from_master -- 
mysqli_enable_rpl_parse -- 
mysqli_errno -- Retourne un code d'erreur pour la dernière commande MySQL
mysqli_error -- Retourne une chaîne décrivant la dernière erreur
mysqli_execute -- Exécute une requête préparée
mysqli_fetch_array --  Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux.
mysqli_fetch_assoc --  Récupère une ligne de résultat sous forme de tableau associatif
mysqli_fetch_field_direct --  Récupère les données métas d'un champ unique
mysqli_fetch_field -- Retourne le prochain champ dans le jeu de résultats
mysqli_fetch_fields --  Retourne un tableau d'objets représentant les champs dans le résultat
mysqli_fetch_lengths --  Retourne les longueurs des colonnes de la ligne courante du jeu de résultats
mysqli_fetch_object --  Retourne la ligne courante d'un jeu de résultat sous forme d'objet
mysqli_fetch_row --  Récupère une ligne de résultat sous forme de tableau indexé
mysqli_fetch --  Récupère un résultat à partir d'une requête préparée dans les variables
mysqli_field_count -- Retourne le nombre de colonnes pour la dernière requête
mysqli_field_seek --  Déplace le pointeur de résultat sur le champ spécifié
mysqli_field_tell --  Retourne la position du champ courant dans un pointeur de résultat
mysqli_free_result -- Libère la mémoire associée à un résultat
mysqli_get_client_info -- Retourne une chaîne contenant la version du client MySQL
mysqli_get_host_info -- Retourne une chaîne contenant le type de connexion utilisé
mysqli_get_proto_info -- Retourne la version du protocole MySQL utilisé
mysqli_get_server_info -- Retourne la version du serveur MySQL
mysqli_get_server_version -- Retourne un entier représentant la version du serveur MySQL
mysqli_info -- Retourne des informations à propos de la dernière requête exécutée
mysqli_init --  Initialise MySQLi et retourne une ressource à utiliser avec mysqli_real_connect
mysqli_insert_id --  Retourne l'identifiant automatiquement généré par la dernière requête
mysqli_kill -- Demande au serveur de terminer un thread MySQL
mysqli_master_query --  Force l'exécution d'une requête sur le maître dans une configuration maître/esclave (master/slave)
mysqli_num_fields --  Retourne le nombre de champs dans un résultat
mysqli_num_rows --  Retourne le nombre de lignes dans un résultat
mysqli_options -- Modifie les options
mysqli_param_count -- Retourne le nombre de paramètres pour la requête donnée
mysqli_ping --  Ping la connexion au serveur et reconnecte si elle n'existe plus
mysqli_prepare_result -- 
mysqli_prepare --  Prépare une requête SQL pour l'exécution
mysqli_profiler -- 
mysqli_query -- Performe une requête sur la base de données
mysqli_read_query_result -- 
mysqli_real_connect -- Ouvre une connexion à un serveur MySQL
mysqli_real_escape_string --  Protège les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL, en prenant en compte le jeu de caractères courant de la connexion
mysqli_real_query -- Exécute une requête SQL
mysqli_reload -- 
mysqli_rollback -- 
mysqli_rpl_parse_enabled -- 
mysqli_rpl_probe -- 
mysqli_rpl_query_type -- 
mysqli_select_db -- Sélectionne une base de données par défaut pour les requêtes
mysqli_send_long_data -- 
mysqli_send_query -- 
mysqli_slave_query --  Force l'exécution d'une requête sur un esclave dans une configuration maître/esclave (master/slave)
mysqli_ssl_set -- 
mysqli_stat --  Obtient le statut courant du système
mysqli_stmt_affected_rows -- 
mysqli_stmt_close -- Ferme une requête
mysqli_stmt_errno -- 
mysqli_stmt_error -- 
mysqli_stmt_store_result -- 
mysqli_store_result -- Transfère un jeu de résultats à partir de la dernière requête
mysqli_thread_id -- Retourne l'identifiant du thread pour la connexion courante
mysqli_thread_safe --  Indique si le thread safety est donné ou non
mysqli_use_result -- Initialise la récupération d'un jeu de résultats
mysqli_warning_count --  Retourne le nombre d'avertissements généré par la dernière requête