Test avec base de données d'adjectifs anglais ou français
Exemple de fichier de requête avec php mysqli (procédural)
Cet exemple montre une requête simple non sécurisée. Cette requête test avec des mots anglais français à titre d'exemple une connexion mysqli en procédural
La traduction est approximative, il s'agit d'un exemple de gestion de données.
<?php
$f_lettre_frm = $_POST['fletter'];
1
if (empty($f_letter)) {
//2 die("Sélection lettre requise");
}
include_once('config_conn.php');
//3
$conn = new mysqli(SVR_IP, UTILISATEUR, MOTDEPASSE);
//4
if($conn->connect_error) { //
5 echo("<p>Echec de la connexion</p>");
// die("<p>Echec de la connexion: (" . $conn->connect_error . ")</p>");
} else {
// echo "<p>Paramètres de connection à la base de données valides</p>";
}
$conn->select_db("bdd_01");
//6
$f_lettre = $f_lettre_frm.'%';
//7
$sql = "SELECT col1, col2, col3
FROM bdd_table
WHERE col1 LIKE '$f_lettre'";
$results = $conn->query($sql); //
8
$conn -> close();
//9
if ($results->num_rows > 0){
//10
echo "<table style = 'border:1px solid black;' border = 1>";
while($row = $results->fetch_object()){
//11 echo "<tr>";
echo "<td>" . $row->{'Adjectif masculin fr'} . "</td>";
echo "<td>" . $row->{'Adj féminin fr'} . "</td>";
echo "<td>" . $row->{'Adj anglais'} . "</td>";
echo "</tr>";
}
echo "</table>";
$results->free_result();
//12
} else {
die ("Aucun résultat");
}
?>
->select_db()
LIKE
de la requête
->query()
->close()
->num_rows
->fetch_object()
. Un tableau associatif avec ->fetch_assoc()
peut s'appliquer également.
->free_result()
Cet exemple en programmation objet montre l'utilisation extensive de
Dans cette version, la connection à la base de données est fermée en ligne 34 (11) juste après l'exécution de la requête.
Les données de la requête sont libérées de la mémoire en ligne 49 (14) juste après la boucle while
d'affichage des données.
Ce sont des précautions pour
La version suivante utilise un bloc try...catch pour arriver au même résultat
<?php
...
include_once('config_select.php');
try {
//1 $conn = new mysqli(SVR_IP, UTILISATEUR, MOTDEPASSE);
} catch (mysqli_sql_exception $e) {
$erreur = $e->getMessage(); //
2 die($erreur);
}
...
?>
try
et catch
en fin de script.
->getMessage()
Pour l'exemple ci-dessus, le script ne propose pas de mesures de sécurité contre notamment les attaques par