• Aucun résultat trouvé

Fonction PHP pour opérer sur une Base de données MySQL 

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_connect   

int 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>" ; }

Documents relatifs