Mysql requête select avec pdo – exemple

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…