Initiation à MySQL
Voici une description assez succinte des fonctionnalités de MySQL administrables en PHP. La documentation complète et en Français se trouve téléchargeable ci-dessous.
![]() |
Télécharger la documentation en français |
Gestion des erreurs
Les erreurs générées par MySQL peuvent être affichées par le code suivant
echo "Erreur MySQL: ".mysql_error()."<BR>";
Connexion au serveur MySQL
Pour accèder à MySQL, il faut ouvrir une connexion sur le serveur via l'instruction mysql_connect
int mysql_connect(hostname, username, password);
Cette fonction retourne un identifiant positif en cas de succès, 0 sinon.
Notez que tous les paramètres sont optionnels et qu'ils seront automatiquement
remplacés par les valeurs par défaut s'ils sont omis. D'autre
part, la connexion peut être fermée explicitement par mysql_close()
,
ou implicitement lorsque l'exécution du script s'achève.
Création d'une base de données MySQL
Il suffit d'employer la commande mysql_create_db
int mysql_create_db(nom de la base);
Suppression d'une base de données
Pour effacer une base de données, il faut utiliser mysql_drop_db
int mysql_drop_db(nom de la base);
Retourne VRAI en case de succès, FALSE sinon.
Sélection d'une base de données
La fonction mysql_select_db
permet de choisir la base de données
sur laquelle agir
int mysql_select_db(nom de la base);
La fonction retrourne VRAI en cas de succèes, FAUX sinon.
Requètes MySQL et accès aux tables
Les requètes sont envoyées par le commande mysql_db_query
int mysql_db_query(requète);
Retourne un identifiant de résultat si la requête réussi,
FALSE sinon. Cet identifiant sera utilisé pour parcourir la réponse
à la requète (instructions mysql_fetch_array...)
et
il devra ensuite être libéré de la mémoire à
l'aide de mysql_free_result
. (se reporter aux paragraphes suivant)
Créer une table
La requète à envoyer pour créer une table est de la forme
CREATE TABLE nom de la table (
identifiant_colonne
type
attribut,
... )
Attributs possibles | |
NULL | champ éventuellement vide |
NOT NULL | champ jamais vide |
UNSIGNED | champ non signé |
ZERO FILL | champ initialisé à 0 |
BINARY | champ binaire |
AUTO_INCREMENT | champ incrémenté automatiquement |
DEFAULT valeur par défaut | champ muni d'une valeur par défaut |
Types numériques | |
TINYINT | 1 octet |
SMALLINT | 2 octets |
MEDIUMINT | 3 octets |
INT | 4 octets |
INTEGER | 4 octets |
BIGINT | 8 octets |
FLOAT(4) | 4 octets |
FLOAT(8) | 8 octets |
FLOAT | 4 octets |
DOUBLE | 8 octets |
REAL | 8 octets |
DECIMAL(M,D) | M (D+2 si M<D) |
NUMERIC(M,D) | M (D+2 si M<D) |
Types date et heure | ||
DATETIME | 8 octets | [0000-00-00 00:00:00] |
DATE | 3 octets | [0000-00-00] |
TIMESTAMP(8) | 4 octets | [YYYYMMDD] |
TIME | 3 octets | [00:00:00] |
YEAR | 1 octets | [0000] |
Types chaîne | |
CHAR(M) | M (entre 1 et 255) |
VARCHAR(M) | L+1 avec L<M+1 |
TINYBLOB, TINITEXT | L+1 avec L<256 |
BLOB, TEXT | L+2 avec L<65536 |
MEDIUM[BLOB/TEXT] | L+3 avec L<16777216 |
LONGBLOB, LONGTEXT | L+4 avec L<4294967296 |
ENUM('val1','val2'...) | 1 ou 2 octets |
SET('val1','val2',...) | 1,2,3,4 ou 8 octets |
Il est aussi possible de déclarer des index sur des données déclarées
NOT NULL
pour accélérer les futures requètes.
Index de colonne
KEY identifiant_index (identifiant_colonne)
Index sur plusieurs colonnes
INDEX identifiant_index (identifiant_colonne1, identifiant_colonne2)
Insérer des éléments dans la table
La requète à envoyer est:
INSERT INTO nom_table(col1, col2...) VALUES (val1, val2...}
Remarque REPLACE
fonctionne exactement comme INSERT
, mais si une ligne
d'une table a une colonne qui porte l'attribut unique, REPLACE
pourra remplacer
cette ligne par une nouvelle ligne, tout en gardant la même valeur dans la colonne
de type unique.
Modifier des éléments de la table
UPDATE nom_table SET co1=expr1,col2=expr2,... [WHERE ...]
Lecture des éléments d'une table
Il faut employer la commande mysql_fetch_array
à la suite de
la requète pour récupérer les éléments sélectionnés
par celle-ci. Ainsi, le code suivant permet de lire toutes les lignes d'une
table
$result=mysql_db_query("select * from table")
or die("requète invalide");
while ($row=mysql_fetch_array($result))
{
echo "Colonne1:".$row["colonne1"].", ";
echo "Colonne2:".$row["colonne2"].", ";
...
}
mysql_free_result($result);
La commande mysql_fetch_object
est assez similaire, à la différence
près que les colonnes obtenues sont des objets et non plus des tableaux
associatifs. Pour accèder à la colonne1, on emploie alors $row->colonne1
.
Il est possible de connaître le nombre de lignes d'un résultat
de requète par $mysql_num_rows($result)
.
Suppression de lignes
La requète à envoyer est.
DELETE FROM table [WHERE ...]
- Retourne le nombre de lignes effacées.
![]() |
Installer Windows Apache MySql PHP |