|
Table des matières
XCVI. MySQLIntroductionCes fonctions vous permettent d’accéder aux bases de données MySQL. Le site officiel de cette base est http://www.mysql.com/. La documentation de MySQL est disponible à http://dev.mysql.com/doc/. Pré-requisAfin de pouvoir les utiliser, vous devez compiler PHP avec le support MySQL. InstallationPour compiler, utilisez tout simplement l’option de configuration “–with-mysql[=DIR]” où le paramètre optionnel “[DIR]” pointe vers le dossier d’installation de MySQL. Bien que cette extension MySQL soit compatible avec MySQL 4.1.0 et supérieur, elle ne supporte pas les fonctionnalités supplémentaires que cette version fournit. Pour cela, utilisez plutôt l’extension MySQLi. Si vous voulez installer l’extension mysqli en même temps que l’extension mysql, vous devez utiliser la même bibliothèque client afin d’éviter les conflits. Installation sur les systèmes LinuxPHP 4L’option “–with-mysql” est activée par défaut. Ce comportement par défaut peut être désactivé avec l’option de configuration “–without-mysql”. Si MySQL est activé sans spécifier le chemin vers le dossier d’installation de MySQL, PHP utilisera la bibliothèque cliente MySQL fournie dans la distribution PHP. Les utilisateurs qui se servent d’autres applications qui utilisent MySQL (par exemple, “auth-mysql”) ne doivent pas utiliser la bibliothèque intégrée, mais plutôt spécifier “–with-mysql=/path/to/mysql”. Cela va forcer PHP à utiliser les bibliothèques clientes installées par MySQL, et évitera les conflits. PHP 5+Installation sur les systèmes WindowsPHP 4L’extension MySQL est directement fournie dans la distribution PHP. PHP 5+
Notes sur l'installation de MySQL
Configuration à l'exécutionLe comportement de ces fonctions est affecté par la configuration dans le fichier “php.ini”. Tableau 1. Options de configuration
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe G. Voici un éclaircissement sur l’utilisation des directives de configuration. “mysql.allow_persistent” bool Active ou désactive les connexions persistantes à la base de données MySQL. “mysql.max_persistent” entier Le nombre maximum de connexions persistantes aux bases de données MySQL, par processus. “mysql.max_links” entier Le nombre maximum de connexions aux bases de données MySQL, y compris les connexions persistantes, par processus. “mysql.trace_mode” boolean Mode trace. Lorsque “mysql.trace_mode” est activée, des alertes pour scans de table ou d’index, pour oubli de libération des ressources ou erreurs SQL seront affichées. Cette option a été introduite en PHP 4.3.0) “mysql.default_port” string Le numéro de port TCP par défaut, utilisé pour se connecter à la base de données, lorsque aucun port n’est spécifié. Si aucun port par défaut n’est spécifié, le port sera alors obtenu en lisant la variable d’environnement “MYSQL_TCP_PORT”, l’entrée “mysql-tcp” dans le fichier “/etc/services” ou encore la constante de compilation “MYSQL_PORT”, dans cet ordre. Windows n’utilisera aussi que la constante “MYSQL_PORT”. “mysql.default_socket” string Le nom par défaut de la socket lorsque l’on se connecte au serveur local, si aucune autre socket n’est spécifiée. “mysql.default_host” string “mysql.default_user” string “mysql.default_password” string “mysql.connect_timeout” entier Durée maximale d’attente de la réponse d’un serveur, en secondes. Sous Linux, cette durée sert aussi lors de l’échange du premier avec le serveur. Types de ressourcesIl y a deux types de ressources utilisées par le module MySQL. Le premier est un identifiant de connexion au serveur, appelé “mysql link”, et le second est un identifiant de résultat de requête, appelé “mysql result”. Constantes pré-définiesCes constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l’exécution. Depuis PHP 4.3.0, il est possible de spécifier des options de client supplémentaires pour les fonctions mysql_connect() et mysql_pconnect(). Ces constantes sont les suivantes : Tableau 2. Constantes client MySQL
La fonction mysql_fetch_array() utilise une constante pour spécifier les différents types de formats de réponse. Les constantes suivantes sont utilisées : Tableau 3. Constantes de mysql_fetch_array()
Notes
ExemplesCet exemple simple montre comment se connecter, exécuter une requête, lire les informations obtenues et se déconnecter d’une base de données MySQL.
<?php // Connexion et sélection de la base $link = mysql_connect("mysql_hote", "mysql_utilisateur", "mysql_mot_de_passe") or die("Impossible de se connecter"); echo "Connexion réussie"; mysql_select_db("my_database") or die("Could not select database"); // Exécuter des requêtes SQL $query = "SELECT * FROM my_table"; $result = mysql_query($query) or die("Query failed"); // Afficher des résultats en HTML echo "<table>\n"; while ($line = mysql_fetch_assoc($result)) { echo "\t<tr>\n"; foreach ($line as $col_value) { echo "\t\t<td>$col_value</td>\n"; } echo "\t</tr>\n"; } echo "</table>\n"; // Libération des résultats mysql_free_result($result); // Fermeture de la connexion mysql_close($link); ?> Table des matières mysql_affected_rows – Retourne le nombre de lignes affectées lors de la dernière opération MySQL mysql_change_user – Change le nom de l’utilisateur de la connexion activemysql_client_encoding – Retourne le nom du jeu de caractères utilisé par le client MySQL mysql_close – Ferme la connexion MySQLmysql_connect – Ouvre une connexion à un serveur MySQLmysql_create_db – Crée une base de données MySQLmysql_data_seek – Déplace le pointeur interne de résultat MySQLmysql_db_name – Lit les noms des bases de donnéesmysql_db_query – Envoie une requête MySQL à un serveur MySQLmysql_drop_db – Efface une base de données MySQLmysql_errno – Retourne le numéro d’erreur de la dernière commande MySQLmysql_error – Retourne le texte associé avec l’erreur générée lors de la dernière requêtemysql_escape_string – Protège une chaîne pour la passer à mysql_querymysql_fetch_array – Retourne une ligne de résultat MySQL sous la forme d’un tableau associatif, d’un tableau indexé, ou les deux mysql_fetch_assoc – Lit une ligne de résultat MySQL dans un tableau associatifmysql_fetch_field – Retourne les données enregistrées dans une colonne MySQL sous forme d’objet mysql_fetch_lengths – Retourne la taille de chaque colonne d’une ligne de résultat MySQL mysql_fetch_object – Retourne une ligne de résultat MySQL sous la forme d’un objetmysql_fetch_row – Retourne une ligne de résultat MySQL sous la forme d’un tableaumysql_field_flags – Retourne des détails sur une colonne MySQLmysql_field_len – Retourne la taille d’un champ de résultat MySQLmysql_field_name – Retourne le nom d’une colonne dans un résultat MySQLmysql_field_seek – Déplace le pointeur de résultat vers une position donnéemysql_field_table – Retourne le nom de la table MySQL où se trouve une colonnemysql_field_type – Retourne le type d’une colonne MySQL spécifiquemysql_free_result – Libère le résultat de la mémoiremysql_get_client_info – Lit les informations sur le client MySQLmysql_get_host_info – Lit les informations sur l’hôte MySQLmysql_get_proto_info – Lit les informations sur le protocole MySQLmysql_get_server_info – Lit les informations sur le serveur MySQLmysql_info – Lit des informations à propos de la dernière requête MySQLmysql_insert_id – Retourne l’identifiant généré par la dernière requête INSERT MySQL mysql_list_dbs – Liste les bases de données disponibles sur le serveur MySQL mysql_list_fields – Liste les champs d’une table MySQLmysql_list_processes – Liste les processus MySQLmysql_list_tables – Liste les tables d’une base de données MySQLmysql_num_fields – Retourne le nombre de champs d’un résultat MySQLmysql_num_rows – Retourne le nombre de lignes d’un résultat MySQLmysql_pconnect – Ouvre une connexion persistante à un serveur MySQL mysql_ping – Pingue le serveur MySQL, et s’y reconnecte au besoinmysql_query – Envoie une requête à un serveur MySQLmysql_real_escape_string – Protège les caractères spéciaux d’une commande SQLmysql_result – Retourne un champ d’un résultat MySQLmysql_select_db – Sélectionne une base de données MySQLmysql_stat – Retourne le statut courant du serveur MySQLmysql_tablename – Lit le nom de la table qui contient un champmysql_thread_id – Retourne l’identifiant du thread MySQL courantmysql_unbuffered_query – Exécute une requête SQL sans mobiliser les résultats MySQL Travail collaboratifContribuez, en ajjoutant des elements a cette page de manuel : Merci de votre aide |