Les fonctions PHP pour MySQL commencent toujours par "mysql_", en voici ci‐dessous une liste non exhaustive.
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 active mysql_client_encoding — Retourne le nom du jeu de caractères utilisé par le
client MySQL
mysql_close — Ferme la connexion MySQL
mysql_connect — Ouvre une connexion à un serveur MySQL mysql_create_db — Crée une base de données MySQL
mysql_db_name — Lit les noms des bases de données
mysql_db_query — Envoie une requête MySQL à un serveur MySQL mysql_drop_db — Efface une base de données MySQL
mysql_errno — Retourne le numéro d'erreur de la dernière commande MySQL mysql_error — Retourne le texte associé avec l'erreur générée lors de la dernière
requête
mysql_escape_string — Protège les caractères spéciaux SQL
mysql_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 associatif mysql_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 objet
mysql_fetch_row — Retourne une ligne de résultat MySQL sous la forme d'un tableau
mysql_field_flags — Retourne des détails sur une colonne MySQL mysql_field_len — Retourne la taille d'un champ de résultat MySQL
mysql_field_name — Retourne le nom d'une colonne dans un résultat MySQL mysql_field_seek — Déplace le pointeur de résultat vers une position donnée mysql_field_table — Retourne le nom de la table MySQL où se trouve une colonne mysql_field_type — Retourne le type d'une colonne MySQL spécifique
mysql_free_result — Libère le résultat de la mémoire
mysql_get_client_info — Lit les informations sur le client MySQL mysql_get_host_info — Lit les informations sur l'hôte MySQL
mysql_get_proto_info — Lit les informations sur le protocole MySQL mysql_get_server_info — Lit les informations sur le serveur MySQL mysql_info — Lit des informations à propos de la dernière requête MySQL
mysql_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 MySQL
mysql_list_processes — Liste les processus MySQL
mysql_list_tables — Liste les tables d'une base de données MySQL
mysql_num_fields — Retourne le nombre de champs d'un résultat MySQL mysql_num_rows — Retourne le nombre de lignes d'un résultat MySQL mysql_pconnect — Ouvre une connexion persistante à un serveur MySQL
mysql_ping — Vérifie la connexion au serveur MySQL, et s'y reconnecte au besoin mysql_query — Envoie une requête à un serveur MySQL
mysql_real_escape_string — Protège les caractères spéciaux d'une commande SQL
mysql_result — Retourne un champ d'un résultat MySQL mysql_select_db — Sélectionne une base de données MySQL mysql_set_charset — Sets the client character set
mysql_stat — Retourne le statut courant du serveur MySQL mysql_tablename — Lit le nom de la table qui contient un champ mysql_thread_id — Retourne l'identifiant du thread MySQL courant
mysql_unbuffered_query — Exécute une requête SQL sans mobiliser les résultats MySQL
En règle générale on n'utilise pas plus d’une dizaine de ces fonctions , et c'est d'ailleurs sur elles que nous mettrons l'accent plus bas dans ce document.
Nous avons :
mysql_connect(), mysql_select_db(), mysql_query(), mysql_num_rows(), mysql_fetch_array(), mysql_fetch_row(), mysql_fetch_assoc(), mysql_close()
V.9.1. Connexion
Elle se déroule en deux étapes : ‐ Connexion au serveur de base de données ‐ Sélection de la base de données à utiliser 1. La connexion au serveur se fait à l’aide de la fonction mysql_connectint mysql_connect (string [chaine_connexion], string [nom_utilisateur], string [motPasse])
chaine_connexion est au format [hote[:port][:fichierSocket]]. Par défaut la chaine hote est localhost, le port étant le port par défaut du serveur MySQL. On peut également indiquer le chemin d’accès au fichier socket.
nom_utilisateur 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) motPasse est le mot de passe de cet utilisateur. Vide par défaut. La fonction renvoie, en cas de succès, un entier positif qui est un identifiant de connexion (ressource) et qui est utilisé pour identifier la connexion lors des accès ultérieurs. Une autre variante de la fonction mysql_connect est la fonction mysql_pconnect. Avec exactement le même nombre de paramètres que mysql_connect, mysql_pconnect fait la même chose que mysql_connect à la différence qu’elle ouvre une connexion persistante qui n’est pas refermée à la fin du script de connexion.
La sélection de la base de données est faite à l’aide de la fonction mysql_select_db.
int mysql_select_db (string nomBase, int [connexion], string [motPasse]) nomBase devient la courante sur laquelle s’effectueront toutes les requêtes qui seront exécutées. connexion représente la ressource qui identifie la connexion encoure. Exemple : mysql_connect("localhost","root"); mysql_select_db("personne");
V.9.2. Interrogation (requête)
Il est question ici de la formulation et de l’exécution de la requête SQL en utilisant la connexion courante.
L’exécution de la requête se fait à l’aide de la fonction mysql_query int mysql_query(string requête [, int connexion])
si la requête échoue, 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_fetch_***.
Exemple 1 :
$link = mysql_connect("localhost","root"); mysql_select_db("personne");
$result = mysql_query("SELECT * from presonne", $link) ;
Exemple 2 : (une autre variante de l’exemple 1) $link = mysql_connect("localhost","root"); mysql_select_db("personne");
$requete = "SELECT * from presonne" ; $result = mysql_query($requete, $link) ;
V.9.3. Extraction de données
L’exécution d’une requête de type INSERT, DELETE, UPDATE ne nécessite pas un traitement supplémentaire après l’appel de la fonction mysql_query. La situation n’est pas exactement la même dans le cas d’une requête SELECT. En effet, une fois la sélection faite, il faut accéder aux données pour les exploiter. Pour cela on utilise souvent la fonction mysql_fetch_array ou mysql_fetch_row ou encore mysql_fetch_assoc.array mysql_fetch_array(int resultat [, int typeResultat])
renvoie un tableau associatif contenant les attributs de la ligne courante, et positionne 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 pas de ligne. resultat est l’identifiant de résultat renvoyé par la fonction mysql_connect. typeResultat est une constante facultative qui peut prendre l’une des valeurs suivantes : MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH. Pour les autres fonctions, consulter l’aide en ligne www.php.net/nom_fonction
array mysql_fetch_row(int resultat)
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.
Exemple 1 :
……… ……… ………
while ( $ligne = mysql_fetch_array($result) ) {
echo $ligne["nom"] . " " . $ligne["prenom"] ." <br>" ; }