info2gestion

PHP

Mysql requête select avec pdo - exemple

Test avec base de données d'adjectifs anglais ou français

Test requête

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...