C.7 Interface PHP/MySQL 513 mysql_field_type string mysql_field_type (int r´esultat, int noAttribut ) Renvoie le type de l’attribut noAttribut dans le résultat identifié par r´esultat. mysql_free_result int mysql_free_result (int r´esultat ) Libère la mémoire affectée au résultat identifié par r´esultat. Cette mémoire est de toute manière libérée à la fin du script, mais la fonction peut être utile si on souhaite récupérer de la mémoire au cours de l’exécution d’un script volumineux. mysql_get_client_info string mysql_get_client_info (int [connexion ]) Renvoie la version du client MySQL. mysql_get_host_info string mysql_get_host_info (int [connexion ]) Renvoie des informations sur la machine sur laquelle tourne le serveur MySQL. mysql_get_proto_info string mysql_get_proto_info (int [connexion ]) Renvoie le protocole de connexion client/serveur mysql_get_server_info string mysql_get_server_info (int [connexion ]) Renvoie la version du serveur MySQL mysql_info string mysql_info (int [connexion ]) Renvoie une chaîne contenant des informations sur la dernière requête exécutée. 514 Annexe C. Fonctions PHP mysql_insert_id int mysql_insert_id () Renvoie l’identifiant engendré pendant le dernier ordre INSERT pour l’attribut bénéficiant de l’option AUTO_INCREMENT. Cet identifiant permet de réaccéder (avec un ordre SELECT) à une ligne que l’on vient de créer dans une table disposant d’un identifiant automatiquement incrémenté. mysql_list_dbs int mysql_list_dbs (int [connexion ]) La fonction renvoie un identifiant qui peut être utilisé par la fonction mysql_tablename() ou la fonction mysql_db_name() pour obtenir la liste des bases sur le serveur MySQL. mysql_list_fields int mysql_list_fields (string nomBase, string nomTable, int [connexion ]) Cette fonction permet d’inspecter la définition de la table nomTable dans la base nomBase, le paramètre connexion ayant la signification habituelle. Elle renvoie un identifiant qui peut être utilisé par les fonctions mysql_field_flags, mysql_field_len(), mysql_field_name(),etmysql_field_type(). En cas d’erreur, la fonction renvoie -1. Une autre possibilité est d’effectuer un appel mysql_query("SHOW COLUMNS FROM nomTable"); qui renvoie un tableau décrivant les champs. mysql_list_tables int mysql_list_tables (string nomBase, int [connexion ]) La fonction renvoie un identifiant qui peut être utilisé par la fonction mysql_tablename() pour obtenir la liste des tables de la base nomBase. mysql_num_fields int mysql_num_fields (int r´esultat ) La fonction renvoie le nombre d’attributs dans les lignes du résultat identifié par r´esultat. C.7 Interface PHP/MySQL 515 mysql_num_rows int mysql_num_rows (int r´esultat ) La fonction renvoie le nombre de lignes dans le résultat identifié par r´esultat. mysql_pconnect int mysql_pconnect (string [chaine_connexion ], string [nom ], string [motPasse ]) Cette fonction est identique à mysql_connect(), mais elle ouvre une connexion persistante non refermée à la fin du script. En fait, pour un hôte et un nom d’utilisateur donnés, la fonction ne crée une connexion que lors du premier appel. Les appels suivants (avec les mêmes arguments) réutilisent la connexion qui existe toujours. L’intérêt est d’améliorer les performances en évitant de créer répétitivement des connexions. mysql_ping bool mysql_ping (int [connexion ]) Teste la connexion avec MySQL, et se reconnecte si elle a été perdue. mysql_query int mysql_query (string requete, int [connexion ]) Exécute la requête (au sens large : toute commande MySQL) requ^ete, en utilisant la connexion connexion. Si la requête échoue, par exemple à cause d’une erreur de syntaxe, la fonction renvoie false, sinon elle renvoie une valeur positive. Dans le cas de requêtes SELECT, la valeur renvoyée est l’identifiant du résultat qui peut être utilisé dans les fonctions mysql_fecth_***. mysql_real_escape_string string mysql_real_escape_string() (string cha^ıne ) Effectue un échappement permettant d’obtenir une chaîne prête à l’insertion. Plus complète que addSlashes() car traite, outre les apostrophes, des données comme NULL, \x00, \n, \r, \,et\x1a. À utiliser donc pour insérer des données binaires dans une base. 516 Annexe C. Fonctions PHP mysql_result int mysql_result (int r´esultat, int noLigne, int noAttribut ) Cette fonction permet d’accéder directement à l’attribut noAttribut de la ligne noLigne dans le résultat identifié par r´esultat. Elle est connue comme étant particulièrement lente à cause de la complexité de l’opération demandée. Il est recommandé d’utiliser plutôt la famille de fonctions mysql_fetch_***. mysql_select_db int mysql_select_db (string nomBase, int [connexion ]) Fait de nomBase la base courante. Les requêtes exécutées par la suite s’effectueront sur nomBase. mysql_tablename int mysql_tablename (int r´esultat, int indice ) Cette fonction utilise un identifiant de résultat fourni par mysql_list_tables() ou par mysql_list_dbs(), et permet d’accéder, selon le cas, à la liste des tables ou à la liste des bases de données. Le paramètre indice doit être compris entre 0 et la valeur ramenée par mysql_num_rows() qui donne le nombre de tables (ou de bases) à récupérer. mysql_unbuffered_query int mysql_unbuffered_query (string requ^ete, int [connexion ]) Équivalent à mysql_query(), sauf en ce qui concerne la manière dont la requête est exécutée. La fonction mysql_query() charge tout le résultat en mémoire, tandis que mysql_unbuffered_query() se positionne sur la première ligne et attend les appels aux fonctions mysql_fetch_***() pour accéder successivement aux lignes suivantes. Elle demande donc beaucoup moins de mémoire, puisqu’une seule ligne à la fois est chargée. L’inconvénient est que mysql_num_rows() ne peut être utilisée sur le résultat. Index général A abstraction 116–138, 185 accès disque voir mémoire externe affectation 33, 41, 49, 139, 172, 423, 426–428, 430, 443 d’un objet 172, 443 dans un tableau 49 affichage multi-pages 109–114 agrégation 307–309, 311, 312, 413–415 Ajax 14 ajout d’un attribut voir ALTER TABLE, commande SQL aléatoire 393, 482, 491 ancre HTML xvii, 4, 6, 7, 295, 303, 311, 391 anonyme (utilisateur MySQL) 447, 448 Apache 4, 21, 23, 24, 450, 508 apostrophes (gestion des) voir aussi échappement v, 29, 45, 68, 69, 73, 77, 130, 173, 224, 225, 235, 320, 321, 493, 494, 515 association 181, 185–196, 401 binaire 188–190 ternaire 190–192 authentification voir aussi session v, xxi, 101, 109, 279–286, 458, 459 auto incrémentation voir aussi séquences v, 72, 73, 94, 200, 234–236, 514 B balises HTML <a> 6 <br/> 22, 41, 75, 490 <form> 9, 91, 158, 161 <img> 97 <input> 10, 91, 164 <option> 12 <select> 12 <table> 14, 143, 144 <td> 140 <textarea> 13 <tr> 14, 111, 140 <ul> 304 C C++ 116, 121, 420, 430, 437 cardinalités 186, 190, 191, 194, 195 casse (sensibilité à) 31, 234, 235, 420, 487, 488 chaînes de caractères voir aussi échappement, expressions régulières v de longueur fixe voir CHAR, commande SQL de longueur variable voir VARCHAR, commande SQL PHP 422 SQL 395 . volumineux. mysql_ get_client_info string mysql_ get_client_info (int [connexion ]) Renvoie la version du client MySQL. mysql_ get_host_info string mysql_ get_host_info (int [connexion ]) Renvoie des informations. tourne le serveur MySQL. mysql_ get_proto_info string mysql_ get_proto_info (int [connexion ]) Renvoie le protocole de connexion client/serveur mysql_ get_server_info string mysql_ get_server_info (int. nomBase. mysql_ tablename int mysql_ tablename (int r´esultat, int indice ) Cette fonction utilise un identifiant de résultat fourni par mysql_ list_tables() ou par mysql_ list_dbs(), et permet d’accéder,