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_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, col3
FROM bdd_table
WHERE col1 LIKE ‘$f_lettre’
OR col3 LIKE ‘$f_letterB' »;
$results = $pdo_conn->query($sql); // 10
$pdo_conn = null; // 11
$arrValues = $results->fetchAll(PDO::FETCH_ASSOC); // 12
$nb_lig = $results->rowCount();
if ($nb_lig > 0) { // 13
echo « <table style = ‘border:1px solid black;’ border = 1>; »
echo « <tr> »
foreach ($arrValues[0] as $cle => $xyz){
print « <th>$cle</th> »; // 14
}
print « </tr> »;
foreach ($arrValues as $row){
print « <tr> »;
foreach ($row as $cle => $val){
print « <td>$val</td> »;// 15
}
print « </tr> »;
}
echo « </table> »;
} else {
die (« Aucun résultat »);
}
?>
1, 4-7 Voir les étapes de connection
2 Lecture de la sélection de la lettre dans la page web qui est transférée à dans une variable à php par javascript de manière asynchrone (la page ne recharge pas). Des exemples sur ces techniques et les alternatives (avec jquery notamment) seront publiés sur la partie développement javascript
3 Condition sur la validité de la variable
8 Envoi des erreurs dans un fichier log et affichage éventuel de l’erreur selon le mode développement production
9 Variable utilisée dans la clause « LIKE » de la requête
10 Exécution de la requête avec « $pdo_conn->query() »
11 Fermeture de la connection avec « $pdo_conn = null; »
12 Méthode « FetchAll » pour stocker le résultat de la requête dans un tableau associatif
13 Condition s’il y a des lignes en retour de la requête « $results->rowCount() »
14 Affichage des titres des champs de la table de données du tableau associatif (1ère ligne) résultat de la requête
15 Pour chaque ligne (clé) du tableau associatif, on affiche les valeurs des champs (sous ensemble de données) de la ligne correspondante
Cet exemple montre un usage simple d’une connexion à mysql avec l’api pdo. Ce n’est pas un exemple sécurisé mais pour éventuellement comprendre des scripts pour les sécuriser…