Aller au contenu

PHP/Base de données

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.
< PHP
Début de la boite de navigation du chapitre
Base de données
Icône de la faculté
Chapitre no 8
Leçon : PHP
Chap. préc. :Classes
Chap. suiv. :Formulaire
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « PHP : Base de données
PHP/Base de données
 », n'a pu être restituée correctement ci-dessus.

PHP et les bases de données

[modifier | modifier le wikicode]

Un des grands points forts de PHP est la simplicité avec laquelle il permet d'accéder à de multiples sortes de bases de données. Le couple le plus connu est certainement PHP/MySQL, cependant il existe des extensions pour plus d'une cinquantaine d’autre base de données tel que : Oracle, Microsoft SQL Server, FrontBase, Sybase, Informix, PostgreSQL, Berkeley, en ODBC ou autre.

Nous allons ici traiter plus particulièrement de MySQL. Dans toute la suite, nous utiliserons l'abréviation BDD pour « base de données ». MySQL (My Structured Query Language) est un type de BDD très répandu sur Internet car très simple d’utilisation et compatible avec la grande majorité des scripts PHP disponibles en téléchargement libre sur le Net (OsCommerce, phpBB, Joomla...). Elle répond au langage SQL (Structured Query Language).

Il existe des interfaces graphiques permettant la gestion en ligne d'une BDD MySQL comme le plus connu phpMyAdmin ou encore Eskuel. Ces interfaces permettent à l'utilisateur de la BDD de voir et de modifier celle-ci comme il le souhaite (création de tables, modification et suppression des données...) sans avoir à connaitre le langage SQL permettant de manipuler la base.

Connexion à MySQL

[modifier | modifier le wikicode]

Pour des raisons de sécurité il est fortement conseillé de créer un fichier externe et d'y déposer vos identifiants de connexion à votre BDD (fourni par votre hébergeur dans la plupart des cas).

Évitez aussi de nommer ce fichier d'une manière trop attirante (pas de « identifiants_bdd.php »...).

Il est aussi conseillé de donner une extension « .php » à ces fichiers afin que leur contenu ne soit pas affiché en cas de mauvaise manipulation (par exemple un fichier « bdd.ini » serait lu et affiché si son adresse est tapée directement dans un navigateur et vos identifiants et mots de passe apparaitraient en clair).

Début d’un principe
Fin du principe


Il faut ensuite inclure cette page dans toutes les pages où vous aurez besoin de vous connecter à votre BDD. Pour vous connecter, il vous suffira alors de procéder ainsi :

Début d’un principe
Fin du principe


Classe alternative développée pour les dernières fonctionnalités de MySQL :

$mysqli = new mysqli('localhost', 'login', 'mpassword', 'my_db');

Connexion à MS-SQL

[modifier | modifier le wikicode]

Pilote 1.1 SQL Server pour PHP

[modifier | modifier le wikicode]

Ce pilote peut s'utiliser avec les version de SQL server > 2005.

Début d’un principe
Fin du principe


Début d’un principe
Fin du principe


Requête SQL avec MySQL

[modifier | modifier le wikicode]

Une fois la connexion à votre BDD ouverte, vous pouvez travailler dessus et lancer les requêtes que vous souhaitez. En anglais, requête se dit query, nous allons utiliser la fonction mysql_query de php.

Début d’un principe
Fin du principe


Requête SQL avec MS-SQL

[modifier | modifier le wikicode]
Début d’un principe
Fin du principe


Récupération des données d'une BDD MySQL

[modifier | modifier le wikicode]
Début d’un principe
Fin du principe


Panneau d’avertissement mysql_fetch_array() renvoie généralement un tableau associatif mélangé à une liste numérotée, ses valeurs sont donc en double. Pour n'avoir que la liste, utiliser mysql_fetch_row().

Récupération des données d'une BDD MS-SQL

[modifier | modifier le wikicode]
Début d’un principe
Fin du principe


Autres opérations MySQL

[modifier | modifier le wikicode]

De l'utilité des tableaux associatifs

[modifier | modifier le wikicode]

La ressource pointant sur les résultats d'une requête nous permet d'accéder de manière très simple à ces données en utilisant la syntaxe des tableaux indexés.

Début d’un principe
Fin du principe


Compter le nombre de lignes d'un résultat

[modifier | modifier le wikicode]
Début d’un principe
Fin du principe


Compter le nombre de champs d'un résultat

[modifier | modifier le wikicode]
Début d’un principe
Fin du principe


Lister les bases de données d'un serveur

[modifier | modifier le wikicode]
Début d’un principe
Fin du principe


Lister les tables

[modifier | modifier le wikicode]
Début d’un principe
Fin du principe


Lister les champs

[modifier | modifier le wikicode]
Début d’un principe
Fin du principe


Lister l'ID de la dernière ligne insérée

[modifier | modifier le wikicode]
Début d’un principe
Fin du principe


Avec une variable

[modifier | modifier le wikicode]
$ma_variable = "test";
$requete = "select * from ma_table where and ma_colonne like '%$ma_variable%'";

Pour saisir la variable directement depuis la page web, on fait appel à des formulaires.


  1. http://msdn.microsoft.com/fr-fr/library/cc296152%28v=sql.90%29.aspx
  2. http://www.php.net/manual/fr/function.mssql-select-db.php

Sur les autres projets Wikimedia :