Exemples de scripts pour accéder à une base de données MySQL
Veuillez utiliser la fonction « Imprimer » au bas de la page pour créer un PDF.
Les scripts suivants montrent des exemples d'applications que vous pouvez utiliser pour accéder aux fonctions des bases de données MySQL.
Créer une table
<?php
$server= "dbXX.1und1.com"; /* Nom d'hôte de la base de données */
$user= "xxxxxx"; /* Nom d'utilisateur de la base de données */
$password= "yyyyyyy"; /* Mot de passe */
$database= "dbxxxxxx"; /* Nom de la base de données */
$table= "test"; /* Nom de la table, au choix */
/* Accès au serveur SQL et création de la table */
if ((!$link = mysqli_connect($server, $user, $password, $database)))
die(printf("<H3>Serveur de la base de données non accessible: [%d] %s</H3>", mysqli_connect_errno(), mysqli_connect_error()));
if (!mysqli_query($link, "CREATE TABLE " . $table . "(name varchar(25),email varchar(25),id int(11))"))
die(printf("<H3>La table ne peut pas être créée: [%d] %s</H3>", mysqli_connect_errno(), mysqli_connect_error()));
mysqli_close($link);
?>
Mettre à jour une table
Vous pouvez modifier les entrées d'une table existante en mettant à jour la table.
Avec la requête UPDATE, toutes les entrées dans le champ email qui contiennent la partie ionos.com, sont réglées sur mail@example.com.
<?php
$server= "dbXX.1und1.com"; /* Nom d'hôte de la base de données */
$user= "xxxxxx"; /* Nom d'utilisateur de la base de données */
$password= "yyyyyyy"; /* Mot de passe */
$database= "dbxxxxxx"; /* Nom de la base de données */
$table= "test"; /* Nom de la table, au choix */
/* Accès au serveur SQL et création de la table */
if ((!$link = mysqli_connect($server, $user, $password, $database)))
die(printf("<H3>Serveur de la base de données non accessible: [%d] %s</H3>", mysqli_connect_errno(), mysqli_connect_error()));
if (!mysqli_query($link, "UPDATE " . $table
. " SET email = 'mail@example.com' WHERE INSTR(LCASE(email), 'ionos.com')"))
die(printf("<H3>L'ensemble de données ne peut pas être mis à jour: [%d] %s</H3>", mysqli_connect_errno(), mysqli_connect_error()));
$numero = mysqli_affected_rows($link);
printf("Il y a eu " . $numero. " ensembles de données mis à jour<BR />");
mysqli_close($link);
?>
Supprimer une table
Le script suivant permet de supprimer une table de la base de données.
Attention
Ne supprimez en aucun cas la base de données, mais seulement des tables individuelles, car la base de données en elle-même ne peut pas être créée à nouveau.
<?php
$server= "dbXX.1und1.com"; /* Nom d'hôte de la base de données */
$user= "xxxxxx"; /* Nom d'utilisateur de la base de données */
$password= "yyyyyyy"; /* Mot de passe */
$database= "dbxxxxxx"; /* Nom de la base de données */
$table= "test"; /* Nom de la table, au choix */
/* Accès au serveur SQL et création d'une table */
if ((!$link = mysqli_connect($server, $user, $password, $database)))
die(printf("<H3>Serveur de la base de données non accessible: [%d] %s</H3>", mysqli_connect_errno(), mysqli_connect_error()));
if (!mysqli_query($link, "DROP TABLE " . $table))
die(printf("<H3>La table ne peut pas être supprimée: [%d] %s</H3>", mysqli_connect_errno(), mysqli_connect_error()));
mysqli_close($link);
?>
Saisie de données dans une table
<?php
$server= "dbXX.1und1.com"; /* Nom d'hôte de la base de données */
$user= "xxxxxx"; /* Nom d'utilisateur de la base de données */
$password= "yyyyyyy"; /* Mot de passe */
$database= "dbxxxxxx"; /* Nom de la base de données */
$table= "test"; /* Nom de la table, au choix */
/* Accès au serveur SQL et création de la table */
if ((!$link = mysqli_connect($server, $user, $password, $database)))
die(printf("<H3>Serveur de la base de données non accessible: [%d] %s</H3>", mysqli_connect_errno(), mysqli_connect_error()));
$numero = 0;
/* Saisie des valeurs */
if (!mysqli_query($link, "INSERT INTO " . $table . " VALUES('Jean Dupont','jean.dupont@exemple.fr', 1)"))
die(printf("<H3>L'ensemble de données 1 ne peut pas être inséré: [%d] %s</H3>", mysqli_connect_errno(), mysqli_connect_error()));
$numero += mysqli_affected_rows($link);
if (!mysqli_query($link, "INSERT INTO " . $table . " VALUES('Marie Durand','marie.durand@test.com', 2)"))
die(printf("<H3>L'ensemble de données 2 ne peut pas être inséré: [%d] %s</H3>", mysqli_connect_errno(), mysqli_connect_error()));
$numero += mysqli_affected_rows($link);
if (!mysqli_query($link, "INSERT INTO " . $table . " VALUES('Thomas Martin','thomas.martin@autreexemple.fr', 3)"))
die(printf("<H3>L'ensemble de données 3 ne peut pas être inséré: [%d] %s</H3>", mysqli_connect_errno(), mysqli_connect_error()));
$numero += mysqli_affected_rows($link);
if (!mysqli_query($link, "INSERT INTO " . $table . " VALUES('united.domain','info@united.domain', 4)"))
die(printf("<H3>L'ensemble de données 4 ne peut pas être inséré: [%d] %s</H3>", mysqli_connect_errno(), mysqli_connect_error()));
$numero += mysqli_affected_rows($link);
if (!mysqli_query($link, "INSERT INTO " . $table . " VALUES('IONOS','support@hosting.1und1.com', 5)"))
die(printf("<H3>L'ensemble de données 5 ne peut pas être inséré: [%d] %s</H3>", mysqli_connect_errno(), mysqli_connect_error()));
$numero += mysqli_affected_rows($link);
/* Afficher le nombre de valeurs saisies */
printf("Il y a eu " . $numero . " ensembles de données saisis<BR />");
mysqli_close($link);
?>
Lire des données / Visualiser la table
<?php
$server= "dbXX.1und1.com"; /* Nom d'hôte de la base de données */
$user= "xxxxxx"; /* Nom d'utilisateur de la base de données */
$password= "yyyyyyy"; /* Mot de passe */
$database= "dbxxxxxx"; /* Nom de la base de données */
$table= "test"; /* Nom de la table, au choix */
/* Accès au serveur SQL et création de la table */
if ((!$link = mysqli_connect($server, $user, $password, $database)))
die(printf("<H3>Serveur de la base de données non accessible: [%d] %s</H3>", mysqli_connect_errno(), mysqli_connect_error()));
$result=mysqli_query($link, "SELECT * FROM " . $table . " ORDER BY name");
$row_cnt = mysqli_num_rows($result);
printf("Il y a eu " . $row_cnt . " ensembles de données trouvés<BR />");
/* Afficher la table dans un tableau HTML */
echo "<table><tr>";
while ($field = mysqli_fetch_field($result)) {
echo "<th>$field->name</th>";
}
$field_cnt = mysqli_field_count($link);
echo "</tr>";
while($row = mysqli_fetch_row($result)) {
echo "<tr>";
for($i = 0; $i < $field_cnt; $i++) {
echo "<td>$row[$i]</td>";
}
echo "</tr>\n";
}
echo "</table>";
/* close result set */
mysqli_free_result($result);
mysqli_close($link);
?>
Lire certaines entrées d'une table
Dans ce script, seules certaines entrées sont lues à partir d'une table. Cela améliore considérablement la vitesse du script, ce qui raccourcit les temps de chargement du site Web.
Les 3 premières entrées sont extraites de la base de données, qui contiennent dans le champ email united, ou qui n'ont que IONOS dans le nom du champ.
La sélection du champ email n'est pas sensible à la casse avec LCASE().
Cette requête est très efficace car seul ce qui est vraiment nécessaire est transmis. Seuls les champs nom et email sont transférés, le dernier champ id est ignoré.
<?php
$server= "dbXX.1und1.com"; /* Nom d'hôte de la base de données */
$user= "xxxxxx"; /* Nom d'utilisateur de la base de données */
$password= "yyyyyyy"; /* Mot de passe */
$database= "dbxxxxxx"; /* Nom de la base de données */
$table= "test"; /* Nom de la table, au choix */
/* Accès au serveur SQL et création de la table */
if ((!$link = mysqli_connect($server, $user, $password, $database)))
die(printf("<H3>Serveur de la base de données non accessible: [%d] %s</H3>", mysqli_connect_errno(), mysqli_connect_error()));
$result = mysqli_query($link, "SELECT name, email FROM " . $table
. " WHERE (name = 'IONOS' OR INSTR(LCASE(email), 'united'))
ORDER BY NAME DESC LIMIT 3");
$row_cnt = mysqli_num_rows($result);
printf("Il y a eu " . $row_cnt . " ensembles de données spécifiques trouvés<BR />");
/* Afficher la table dans un tableau HTML */
echo "<table border=\"1\" align=center width=50%";
echo "<tr>";
echo "<div color=\"#ffff00\">";
$field_cnt = mysqli_field_count($link);
while ($field = mysqli_fetch_field($result)) {
echo "<th>$field->name</A></th>";
}
echo "</font></tr>";
while($row = mysqli_fetch_row($result)) {
echo "<tr>";
for($i = 0; $i < $field_cnt; $i++) {
echo "<td align=center>$row[$i]</td>";
}
echo "</tr>\n";
}
echo "</table>";
/* close result set */
mysqli_free_result($result);
mysqli_close($link);
?>
Supprimer certaines entrées d'une table
<?php
$server= "dbXX.1und1.com"; /* Nom d'hôte de la base de données */
$user= "xxxxxx"; /* Nom d'utilisateur de la base de données */
$password= "yyyyyyy"; /* Mot de passe */
$database= "dbxxxxxx"; /* Nom de la base de données */
$table= "test"; /* Nom de la table, au choix */
/* Accès au serveur SQL et création de la table */
if ((!$link = mysqli_connect($server, $user, $password, $database)))
die(printf("<H3>Serveur de la base de données non accessible: [%d] %s</H3>", mysqli_connect_errno(), mysqli_connect_error()));
if (!mysqli_query($link, "DELETE FROM " . $table. " WHERE id = 3"))
die(printf("<H3>L'ensemble de données ne peut pas être supprimé: [%d] %s</H3>", mysqli_connect_errno(), mysqli_connect_error()));
$numero = mysqli_affected_rows($link);
printf("Il y a eu " . $numero. " ensembles de données supprimés<BR />");
mysqli_close($link);
?>