Test avec base de données d'adjectifs anglais ou français
Exemple de fichier de requête préparée 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.
<?phpinclude_once('config_conn.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();}$f_lettre = $f_lettre_frm.'%';//9 $sql = "SELECT col1, col2, col3FROM bdd_tableWHERE adj_fr_masc LIKE ?OR adj_eng LIKE ?";$stmt = $pdo_conn->prepare($sql); //10 $pdo_conn = null;//11 $f_letterB = $f_letter.'%';//12 $stmt->execute([$f_letterB,$f_letterB]);//13 $arrValues = $results->fetchAll(PDO::FETCH_ASSOC);//14 $nb_lig = $results->rowCount();if ($nb_lig > 0) {//15 echo "<table style = 'border:1px solid black;' border = 1>;"echo "<tr>";foreach ($arrValues[0] as $cle => $xyz){print "<th>$cle</th>";//16 }echo "</tr>";foreach ($arrValues as $row){echo "<tr>";foreach ($row as $cle => $val){echo "<td>$val</td>";//17 }echo "</tr>";}echo "</table>";} else {die ("Aucun résultat");}?>
LIKE
de la requête
prepare()
qui initialise le mode requête préparée
->$pdo_conn = null;
FetchAll
pour stocker le résultat de la requête dans un tableau associatif
$results->rowCount()
Il est également possible d'utiliser bindParam() pour affecter un ou plusieurs paramètres à une requête préparée.
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 validations de saisie seront nécessaires pour augmenter la sécurité...