info2gestion

MENU3

Accueil>

PHP

Requête mysql avec pdo - exemple

Test avec base de données d'adjectif anglais 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_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();
}

$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

$nb_lig = $results->rowCount();

if ($nb_lig > 0) { // 12

  echo "<table style = 'border:1px solid black;' border = 1>;"
  $ligne = "";

  while($row = $results->fetch_object()){  // 13
    $ligne = "<tr>";
    $ligne .= "<td>" . $row->{'Adjectif masculin fr'} . "</td>";
    $ligne .= "<td>" . $row->{'Adj féminin fr'} . "</td>";
    $ligne .= "<td>" . $row->{'Adj anglais'} . "</td>";
    $ligne .= "</tr>";
    echo $ligne;
    $ligne = "";
  }
  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 Condition s'il y a des lignes en retour de la requête $results->rowCount()

13 Affichage des données avec une boucle foreach et $results as $row. Un tableau associatif avec ->fetch_assoc() peut s'appliquer également.

14 Libération de la mémoire qui contient les donnnées avec ->fetch_assoc()


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

info site

date de modification:

octobre 2023