Test avec base de données d'adjectif anglais français
Exemple de fichier de requête avec php pdo
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
include_once('config_glob.php');
//1
$f_lettre_frm = $_POST['fletter'];
2
if (empty($f_letter)) {
//3 die("Sélection lettre requise");
}
$dsn = "mysql:host=" . SVR_IP . ";dbname=" . BDD . ";charset=". CHRSET;
//4
try {
//5 $pdo_conn = new PDO($dsn, UTILISATEUR, MOTDEPASSE);
//6 $pdo_conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//7 // echo "Paramètres de connection à la base de données valides";
} catch (Exception $e) {
error_log($e->getMessage());
//8 echo "<p>Erreur de connection paramètres base de données </p>";
// echo "<p>Affichage erreur: </p>" . $e->getMessage();
}
$sql = "SELECT col1, col2, col3
//9 FROM bdd_table
WHERE col1 LIKE ?
OR col3 LIKE ?";
$stmt = $pdo_conn->prepare($sql); //
10
$stmt->bindParam(1, $f_letterB, PDO::PARAM_STR);
//11 $stmt->bindParam(2, $f_letterB, PDO::PARAM_STR);
$f_letterB = $f_letter.'%';
$stmt->execute();
$pdo_conn = null;
//12
$nb_lig = $results->rowCount();
if ($nb_lig > 0) {
//13
echo "<table style = 'border:1px solid black;' border = 1>;"
$ligne = "";
while($row = $stmt->fetch()){
//14 $ligne = "<tr>";
$ligne .= "<td>" . $row['col1'] . "</td>";
$ligne .= "<td>" . $row['col2'] . "</td>";
$ligne .= "<td>" . $row['col3'] . "</td>";
$ligne .= "</tr>";
echo $ligne;
$ligne = "";
}
echo "</table>";
} else {
die ("Aucun résultat");
}
?>
LIKE
de la requête
prepare()
bindParam()
->$pdo_conn = null;
$results->rowCount()
fetch
.
Il est également possible d'utiliser les variables dans la fonction execute() et bindParam() n'est plus utile.
<?php ... $sql = "SELECT col1, col2, col3 FROM bdd_table WHERE col1 LIKE ? OR col3 LIKE ?"; $stmt = $pdo_conn->prepare($sql); $f_letterB = $f_letter.'%'; $stmt->execute([$f_letterB,$f_letterB]); ... ?>
Cet exemple montre un usage simple d'une connexion à mysql avec l'api pdo. Dans le cas d'un formulaire de saisie plus complet, des validation de saisie seront nécessaires pour augmenter la sécurité...