Test avec base de données d'adjectifs anglais ou français
Exemple de fichier de requête avec php mysqli (orienté objet)
Cet exemple montre une requête simple sécurisée avec une requête préparée. Cette requête test avec des mots anglais français à titre d'exemple une connexion mysqli en programmation orientée objet.
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
try {
$conn = new mysqli(SVR_IP, UTILISATEUR, MOTDEPASSE);
//4 } catch (mysqli_sql_exception $e) {
echo("<p>Echec de la connexion</p>");
$erreur = $e->getMessage();
//die($erreur);
//5 }
$conn->select_db("bdd_01");
//6
$sql = "SELECT col1, col2, col3
FROM bdd_table
WHERE col1 LIKE ?";
//7
$stmt = $conn->prepare($sql);
//8 $stmt->bind_param('s', $f_letterB);
//9
$f_lettre = $f_lettre_frm.'%';
//10
$stmt->execute();
//11
$results = $stmt->get_result(); //
12
if (!$results){
//trigger_error(mysqli_error($conn), E_USER_ERROR);
//13 }
if (isset($conn)){
$conn -> close();
//14 }
if ($results->num_rows > 0) {
//15
echo "<table style = 'border:1px solid black;' border = 1>";
$ligne = "";
//15
while($row = $results->fetch_object()){
//16 $ligne .= "<tr>";
$ligne .= "<td>" . $row->col1 . "</td>";
$ligne .= "<td>" . $row->col2 . "</td>";
$ligne .= "<td>" . $row->col3 . "</td>";
$ligne .= "</tr>";
echo $ligne;
}
echo "</table>";
$results->free_result();
//17
}else {
die ("0 résultat");
}
?>
->select_db()
?
pour placer la variable avec la méthode bind_param()
prepare()
?
avec ->bind_param()
LIKE
de la requête
->execute()
->get_result()
num_rows
fetch_object()
free_result()
Le script ci-dessus montre un usage simple de php pdo avec une requête préparée. Pour les paramètres de la requête, en cas de saisie de l'utilisateur, il est conseillé de valider la saisie avant avec filter_var()
et après avec htmlspecialchars()
.