• Aucun résultat trouvé

Interfaçage avec une base de données

N/A
N/A
Protected

Academic year: 2022

Partager "Interfaçage avec une base de données"

Copied!
4
0
0

Texte intégral

(1)

1

Diapo 1

Interfaçage avec une base de données

Principe

PHP propose de nombreux outils permettant de travailler avec la plupart des SGBD

Oracle, Sybase, Microsoft SQL Server, PostgreSQL ou encore MySQL

PHP fournit un grand choix de fonctions permettant de manipuler les bases de données.

Quatre fonctions sont essentielles:

La fonction de connexion au serveur La fonction de choix de la base de données La fonction de requête

La fonction de déconnexion

Diapo 2

Interfaçage avec une base de données

Les fonctions de manipulation sont :

La fonction de connexion au serveur :

mysql_connect()

La fonction de choix de la base de données :

mysql_select_db()

La fonction de requête :

mysql_query()

La fonction de déconnexion :

mysql_close()

Diapo 3

La connexion au serveur I

Les variables qui vont permettre la connexion au serveur

$host : l'hôte (ordinateur sur lequel le SGBD est installé)

$user : le nom d'utilisateur

$passwd : le mot de passe

Exemple :

$host="localhost"

$user="admin"

$passwd="azer"

Diapo 4

La connexion au serveur II

$id_connexion = mysql_connect($host, $user, $passwd)

retourne une valeur de type integer ( $id_connexion ) servant d’identificateur de connexion lorsque la connexion a été établie retourne false si une erreur se produit lors de l’établissement de la connexion

Si $id_connexion est différent de false, la connexion est établie

Diapo 5

La fonction die()

Termine le script courant

die(chaine) die() termine l'exécution du script courant.

Elle n'a pas de valeur de retour mais elle utilisera chaine comme message de fin d'exécution.

Diapo 6

<?php

$id_connexion = mysql_connect($host, $user, $passwd) or die("Impossible de se connecter");

echo "Connexion réussie";

?>

Le script de connexion au serveur

(2)

2

Diapo 7

Accès à une base de données

Suite à la connexion à un SGBD, il faut soit sélectionner la base de données si elle existe, soit la créer si elle n’existe pas.

Sélection de la bases de données $bdd : mysql_select_db($bdd)

Création de la bases de données $bdd : mysql_create_db($bdd)

Diapo 8

Comment se connecter à une base

<?php

// Connexion au serveur

$id_connexion = mysql_connect($host, $user, $passwd) or die("Impossible de se connecter");

// sélection de la base mysql_select_db($bdd)

or die("Connection à la base impossible");

?>

Ce fichier peut être inclus dans un script exploitant la base $bdd à l'aide de include() Avec cette procédure, le mot de passe est écrit "en dur" dans le fichier.

L'emploi d'un formulaire (avec la méthode POST) dans lequel on demande le login et le mot de passe évite de l'avoir écrit dans un fichier.

Diapo 9

Comment se déconnecter

// Fermeture de la connexion

mysql_close( $id_connexion );

Diapo 10

Les requêtes SQL

Les requêtes doivent répondre à la syntaxe SQL en général Les requêtes SQL sont envoyées à la base de données par :

mysql_query()

Diapo 11

Comment exécuter une requête

// Exécuter des requêtes SQL

$query = "SELECT * FROM my_table";

$result = mysql_query($query) or die("requête non conforme");

Diapo 12

Traitement des résultats d’une requête

$result contient l'ensemble des enregistrements retournés par la requête.

On utilise la fonction mysql_fetch_row(), qui découpe les lignes de résultats en colonnes (par exemple Nom,adresse,...) et les affecte à une variable tableau dans l'ordre où elles arrivent (exemple I).

On utilise la fonction mysql_fetch_assoc() qui découpe les lignes de résultats en colonnes (par exemple Nom,adresse,...) et les affecte à une variable tableau associatif (exemple II).

Exemple: une table appelée liens contenant le nom et l'URL de sites internet.

récupérer l'ensemble des enregistrements et de les afficher dans un

tableau

(3)

3

Diapo 13

Exemple I

<html><head><title>Liens</title></head>

<body>

<table>

<tr>

<th>Nom du site</th>

<th>URL</th>

</tr>

<?php

// Déclaration des paramètres de connexion

$host = la_machine;

$user = votre_login;

$bdd = Nom_de_la_base_de_donnees;

$passwd = Mot_de_passe;

// Connexion au serveur

mysql_connect($host, $user, $passwd) or die("erreur de connexion au serveur");

mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");

Diapo 14

Exemple I suite

// Creation et envoi de la requete

$query = "SELECT nom,url FROM liens ORDER BY nom";

$result = mysql_query($query);

// Recuperation des resultats while($row = mysql_fetch_row($result)){

$nom = $row[0];

$url = $row[1];

echo "<tr>\n

<td><a href=\"$url\">$nom</a></td>\n

<td>$url</td>\n

</tr>\n";

}

// Déconnexion de la base de données mysql_close();

?>

</table>

</body>

</html>

Diapo 15

Exemple II

// Afficher des résultats en HTML echo "<table>\n";

while ($ligne = mysql_fetch_assoc($result)) { echo "\t<tr>\n";

foreach ($ligne as $val_col) { echo "\t\t<td>$val_col</td>\n";

}

echo "\t</tr>\n";

}

echo "</table>\n";s

Diapo 16

Interfaçage avec une base de données L'exploitation des données

Le décompte total des enregistrements ou des champs d'une table, peut être obtenu par l'intermédiaire de certaines fonctions

$nb_lignes = mysql_num_rows($result);

$nb_champs = mysql_num_fields($result);

Diapo 17

Interfaçage avec une base de données L'exploitation des données

A partir des enregistrements, chacun des champs devient accessible par des fonctions appropriées.

Certaines fonctions sont capables d'extraire directement un champ déterminé

$valeur = mysql_result($id_resultat, $num_ligne, $num_col);

Diapo 18

Fonctions mysql_

mysql_close -- Ferme la connexion MySQL mysql_connect -- Ouvre une connexion à un serveur 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_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_row -- Retourne une ligne de résultat MySQL sous la forme d'un tableau

mysql_num_fields -- Retourne le nombre de champs d'un résultat MySQL

mysql_pconnect -- Ouvre une connexion persistante à un serveur MySQL

mysql_query -- Envoi une requête à un serveur MySQL

mysql_select_db -- Sélectionne une base de données MySQL

(4)

4

Diapo 19

Fonctions mysqli_

Pour les versions récentes de MySQL (version 4.1.3 ou supérieur), il est recommandé d'utiliser l'extension mysqli .

L'extension mysqli , ou, comme elle est parfois appelée, l'extension MySQL améliorée (i pour improved en anglais), a été développée pour tirer partie des nouvelles fonctionnalités des systèmes MySQL version 4.1.3 et plus récentes.

L'extension mysqli est incluse dans PHP depuis les versions 5.

L'extension mysqli a apporté des avantages et des améliorations par rapport à l'extension mysql (non détaillés ici)

Utilisation : Toutes les fonctions présentées ci-avant sont utilisables avec mysqli.

Il suffit de préfixer les noms de fonctions par mysqli au lieu de mysql.

Diapo 20

Fonctions mysqli_

$id_connexion = mysqli_connect($host, $user, $passwd , $bdd)

La fonction mysqli_connect se connecte à une base de données.

Elle retourne une valeur de type integer ( $id_connexion ) servant d’identificateur de connexion lorsque la connexion a été établie Elle retourne false si une erreur se produit lors de l’établissement de la connexion

Si $id_connexion est différent de false, la connexion est établie.

Diapo 21

Accès à une base de données

La fonction “mysqli_select_db()” n’est donc plus utilisée pour se connecter à une base de données mais pour changer de base de données sur le même serveur.

mysqli_select_db($id_connexion,$bdd)

// Exécuter des requêtes SQL

$query = "SELECT * FROM my_table";

$result = mysqli_query($id_connexion,$query) or die("requête non conforme");

Diapo 22

Comment exécuter une requête

// Exécuter des requêtes SQL

$query = "SELECT * FROM my_table";

$result = mysqli_query($id_connexion , $query) or die("requête non conforme");

// Fermeture de la connexion mysqli_close( $id_connexion );

Diapo 23

Interfaçage avec une base de données L'exploitation des données

Le décompte total des enregistrements ou des champs d'une table, peut être obtenu par l'intermédiaire de certaines fonctions

$nb_lignes = mysqli_num_rows($result);

$nb_champs = mysqli_num_fields($result);

Remarque: La fonction mysqli_result n’est pas utilisable en

mode procédural.

Références

Documents relatifs

 mysql_query permet pas seulement d’exécuter des requêtes SELECT, mais aussi toute autre requête.  Évidemment, s’il ne s’agit pas d’une requête SELECT, on ne fera pas

[r]

Un élève arme que 5 a un seul antécédent qui est un entier

Exercice 1 On dispose d'un test de détection d'une maladie possédant les caractéristiques suivantes : si une personne est atteinte le test a 90% de chances d'être positif ; si

Cet outil est à utiliser pour migrer les bases de données d'une base vers une autre. Il est préférable de faires ces opérations à une heure

L’installation de MySQL Workbench nécessite l’installation préalable des éléments suivants : – Microsoft Visual C++ 2010 x86 Redistributable Setup (vcredist_x86.exe). –

Il lui manque 12 € pour s’acheter une paire

Par exemple, avec la fonction COUNT(*), vous pouvez compter le nombre de lignes que vous avez dans la table Animal. Mais que diriez-vous de faire des groupes par espèces, et donc