508 Annexe C. Fonctions PHP mysql_change_user permet de modifier le compte de connexion à MySQL. Les arguments sont les suivants : 1. nom est le nom de l’utilisateur MySQL. 2. motPasse est le mot de passe. 3. base est le nom de la base sous laquelle on souhaite travailler après change- ment d’identité. 4. connexion est la connexion pour laquelle on souhaite changer l’utilisateur. Par défaut la dernière connexion ouverte est utilisée. La fonction renvoie, en cas de succès, un entier positif. Si la connexion échoue, les anciens paramètres de connexion restent valides. Cette fonction est relativement récente (MySQL 3.23.3). mysql_client_encoding string mysql_client_encoding (int [connexion ]) renvoie le jeu de caractères de la connexion courante. mysql_close int mysql_close (int [connexion ]) mysql_close() ferme une connexion avec MySQL. L’argument connexion est optionnel : par défaut la dernière connexion ouverte est utilisée. Cette fonction est en général inutile puisqu’une connexion (non persistante) avec MySQL est fermée à la fin du script. mysql_connect int mysql_connect (string [chaine_connexion ], string [nom ], string [motPasse ]) mysql_connect() établit une connexion avec MySQL. 1. chaine_connexion est au format [h^ote[:port][:fichierSocket]].La chaîne h^ote vaut par défaut localhost, le port étant le port par défaut du serveur MySQL. Le chemin d’accès au fichier socket peut également être indiqué (à la place du port) pour une connexion à partir de la même machine que celle où tourne le serveur. 2. nom est le nom de l’utilisateur MySQL. Par défaut il prend la valeur de l’utilisateur sous lequel le serveur Apache a été lancé (typiquement nobody). 3. motPasse est le mot de passe. Par défaut, un mot de passe vide est utilisé. C.7 Interface PHP/MySQL 509 La fonction renvoie, en cas de succès, un entier positif qui est utilisé pour identifier la connexion lors des accès ultérieurs. Notez que la connexion est automatiquement fermée à la fin du script. mysql_create_db int mysql_create_db (string nomBase, int [connexion ]) mysql_create_db() crée une nouvelle base de nom nomBase, en utilisant la connexion connexion (ou, par défaut, la dernière connexion ouverte). Bien entendu le compte utilisateur associé à la connexion doit avoir les droits MySQL suffisants. mysql_data_seek int mysql_data_seek (int r´esultat, int noLigne ) mysql_data_seek() positionne le curseur sur la ligne noLigne. La ligne peut alors être récupérée avec une des fonctions mysql_fetch_***(). La fonction renvoie true si l’opération réussit, et false sinon. Les numéros de ligne commencent à 0. mysql_db_name int mysql_db_name (int r´esultat, int [noLigne ]) Cette fonction renvoie le nom d’une base de données en prenant en argument un identifiant de résultat fourni par mysql_list_dbs(),etlenumérodelaligne souhaitée (mysql_num_rows() permet de connaître le nombre de lignes). Elle renvoie false en cas d’erreur. mysql_db_query int mysql_db_query (string nomBase, string requ^ete, int [connexion ]) Cette fonction se positionne sur la base nomBase, puis exécute la requête requ^ete en utilisant la connexion connexion (ou, par défaut, la dernière connexion ouverte). Elle renvoie un identifiant de résultat. mysql_drop_db int mysql_drop_db (string nomBase, int [connexion ]) 510 Annexe C. Fonctions PHP Cette fonction tente de détruire la base nomBase, en utilisant la connexion connexion (ou, par défaut, la dernière connexion ouverte). Bien entendu, le compte utilisateur associé à la connexion doit avoir les droits MySQL suffisants. mysql_errno int mysql_errno (int [connexion ]) Renvoie le numéro de l’erreur survenue lors de la précédente opération MySQL – 0 s’il n’y a pas eu d’erreur. mysql_error string mysql_error (int [connexion ]) Renvoie le texte de l’erreur survenue lors de la précédente opération MySQL. mysql_fetch_array array mysql_fetch_array (int r´esultat, int [typeResultat ]) Renvoie un tableau associatif contenant les attributs de la ligne courante, et posi- tionne le curseur sur la ligne suivante. Chaque champ du tableau est indexé par le nom de l’attribut correspondant dans la clause SELECT de la requête SQL. La fonction renvoie false quand il n’y a plus de ligne. r´esultat est un identifiant de résultat, renvoyé par une fonction comme mysql_query,ettypeResultat est une constante qui peut prendre les valeurs suivantes : 1. MYSQL_ASSOC 2. MYSQL_NUM 3. MYSQL_BOTH (par défaut) mysql_fetch_assoc array mysql_fetch_assoc (int r´esultat ) Donne le même résultat que l’appel à mysql_fetch_array() avec le type MYSQL_ASSOC. mysql_fetch_field object mysql_fetch_field (int r´esultat, int [noAttribut ]) C.7 Interface PHP/MySQL 511 Renvoie un objet donnant des informations sur l’attribut noAttribut du résultat identifié par r´esultat.SinoAttribut n’est pas spécifié, la fonction accède au prochain attribut parmi ceux qui n’ont pas encore été consultés. Notez que les attributs sont numérotés à partir de 0. L’objet renvoyé par la fonction contient les informations suivantes : 1. name, nom de l’attribut. 2. table, nom de la table à laquelle appartient l’attribut. 3. max_length, longueur maximale. 4. not_null, 1 si l’attribut ne peut être à NULL. 5. primary_key, 1 si l’attribut est une clé primaire. 6. unique_key, 1 si l’attribut est une clé unique. 7. multiple_key, 1 si l’attribut est une clé non unique. 8. numeric, 1 si l’attribut est un numérique. 9. blob, 1 si l’attribut est un BLOB. 10. type, le type de l’attribut. 11. unsigned, 1 si l’attribut est un non signé. 12. zerofill, 1 si l’attribut est déclaré avec l’option ZEROFILL. mysql_fetch_lengths array mysql_fetch_lengths (int r´esultat ) Renvoie un tableau indicé (à partir de 0) donnant la longueur de chaque attribut dans la ligne ramenée par le précédent appel à une fonction mysql_fetch_***(). mysql_fetch_object object mysql_fetch_object() (int r´esultat, int [typeResultat ]) Renvoie un objet dont chaque propriété correspond à l’un des attributs de la ligne courante et positionne le curseur sur la ligne suivante. Le nom de chaque propriété de l’objet est le nom de l’attribut correspondant dans la clause SELECT de la requête SQL. La fonction renvoie false quand il n’y a plus de ligne. Les arguments sont identiques à ceux de la fonction mysql_fetch_array. mysql_fetch_row array mysql_fetch_row (int r´esultat ) Renvoie un tableau indicé contenant les attributs de la ligne courante, et positionne le curseur sur la ligne suivante. Les champs sont numérotés à partir de 0. Le paramètre r´esultat est un identifiant de résultat. 512 Annexe C. Fonctions PHP mysql_field_flags string mysql_field_flags (int r´esultat, int noAttribut ) Renvoie une chaîne contenant les options de l’attribut noAttribut dans le résultat identifié par r´esultat. Ces options sont celles données au moment de la création de la table : not_null, primary_key, unique_key, multiple_key, blob, unsigned, zerofill, binary, enum, auto_increment, timestamp. Elles apparaissent dans la chaîne séparées par des blancs. La fonction PHP explode permet de placer ces valeurs dans un tableau associatif. mysql_field_len int mysql_field_len (int r´esultat, int noAttribut ) Renvoie la longueur de l’attribut noAttribut dans le résultat identifié par r´esul- tat. mysql_field_name string mysql_field_name (int r´esultat, int noAttribut ) Renvoie le nom de l’attribut indexé par noAttribut dans le résultat identifié par r´esultat. Les attributs sont numérotés à partir de 0. Donc l’appel mysql_field_name ($result, 2) renvoie le nom du troisième attribut. mysql_field_seek int mysql_field_seek (int r´esultat, int noAttribut ) Permet de positionner le curseur sur l’attribut noAttribut de la ligne courante. Le prochain appel à la fonction mysql_fetch_field(), sans utiliser le deuxième argument, ramènera les informations sur cet attribut. mysql_field_table string mysql_field_table (int r´esultat, int noAttribut ) Renvoie le nom de la table à laquelle appartient l’attribut noAttribut dans le résultat identifié par r´esultat. . nom d’une base de données en prenant en argument un identifiant de résultat fourni par mysql_ list_dbs(),etlenumérodelaligne souhaitée (mysql_ num_rows() permet de connaître le nombre de lignes). Elle renvoie. l’appel à mysql_ fetch_array() avec le type MYSQL_ ASSOC. mysql_ fetch_field object mysql_ fetch_field (int r´esultat, int [noAttribut ]) C.7 Interface PHP /MySQL 511 Renvoie un objet donnant des informations. clause SELECT de la requête SQL. La fonction renvoie false quand il n’y a plus de ligne. Les arguments sont identiques à ceux de la fonction mysql_ fetch_array. mysql_ fetch_row array mysql_ fetch_row