Certains liens de ce site sont affiliés : si vous passez par ces liens, nous pouvons percevoir une commission, sans surcoût pour vous et sans perte d’une promotion éventuellement en cours. Politique d’affiliation

Hébergement web

Comment exécuter un SELECT sécurisé en PDO ?

Dans ce descriptif, nous allons prendre l’exemple d’une table de clients que nous appellerons « table_customers » . id_customer company firstname lastname email 1 AMD Roger Aduflair…

Dans ce descriptif, nous allons prendre l’exemple d’une table de clients que nous appellerons « table_customers » .

id_customercompanyfirstnamelastnameemail
1AMDRogerAduflairra@tutu.fr
2INTELPierreJesaispaspj@tutu.fr
3CYRUSJulieCambriolejc@tutu.fr

Vous connaissez son code id (id_customer 3) par exemple.

$idClient = 3:

Récupérer les données d’un client en particulier.

Dans cet exemple, on mettra un « AS » suivi d’un nom pour que ce soit plus simple à l’utilisation par la suite.

bindParam(':idClient', $idClient, PDO::PARAM_INT); $bddClients->execute();" style="color:#D4D4D4;display:none" aria-label="Copy">
// Cas 1
$bddClients = $bdd->prepare("SELECT 
      id_customer AS idClient, 
      company AS societe,
      firstname AS prenom,
      lastname AS nom,
      email AS email
    FROM table_customers
    WHERE id_customer = :idClient
");
$bddClients->bindParam(':idClient', $idClient, PDO::PARAM_INT);
$bddClients->execute();

Vous pouvez aussi avoir la même chose mais avec le nom de la table devant chaque colonne comme ci-dessous, on l’utilise plus quand on récupère des données sur plusieurs tables en même temps (une jointure). Nous en parlerons plus bas.

bindParam(':idClient', $idClient, PDO::PARAM_INT); $bddClients->execute();" style="color:#D4D4D4;display:none" aria-label="Copy">
// Cas 2
// ceci est le même code que le cas 1 mais avec le nom de la table devant chaque colonne
$bddClients = $bdd->prepare("SELECT 
      table_customers.id_customer AS idClient, 
      table_customers.company AS societe,
      table_customers.firstname AS prenom,
      table_customers.lastname AS nom,
      table_customers.email AS email 
    FROM table_customers
    WHERE table_customers.id_customer = :idClient
");
$bddClients->bindParam(':idClient', $idClient, PDO::PARAM_INT);
$bddClients->execute();
bindParam(':idClient', $idClient, PDO::PARAM_INT); $bddClients->execute();" style="color:#D4D4D4;display:none" aria-label="Copy">
// Cas 3
// ceci est le même code que le cas 1 mais sansle nom de la table devant chaque colonne
$bddClients = $bdd->prepare("SELECT 
      id_customer, 
      company,
      firstname,
      lastname,
      email
    FROM table_customers  
    WHERE id_customer = :idClient
");
$bddClients->bindParam(':idClient', $idClient, PDO::PARAM_INT);
$bddClients->execute();

J’utiliserai le Cas 1 pour la suite des explications.

Pour récupérer les données du client dont vous connaissez le code id, on utilisera un fetch simple.

$client = $bddClients->fetch(PDO::FETCH_ASSOC);

et vous pouvez stocker les données et/ou les afficher:

Société: " . $societe . " - Prénom: " . $prenom . " - Nom: " . $nom . " - Email: " . $email;" style="color:#D4D4D4;display:none" aria-label="Copy">
$societe = $client["societe"];
$prenom = $client["prenom"];
$nom = $client["nom"];
$email = $client["email"];
echo "

Société: " . $societe . " - Prénom: " . $prenom . " - Nom: " . $nom . " - Email: " . $email;

ou les afficher directement:

Société: " . $client["societe"] . " - Prénom: " . $client["prenom"] . " - Nom: " . $client["nom"] . " - Email: " . $client["email"] . "

";" style="color:#D4D4D4;display:none" aria-label="Copy">
echo "

Société: " . $client["societe"] . " - Prénom: " . $client["prenom"] . " - Nom: " . $client["nom"] . " - Email: " . $client["email"] . "

"
;

ou encore en html en utilisant le raccourci pour afficher du PHP en HTML.

<p>Société: <?= $societe ?> - Prénom: <?= $prenom ?> - Nom: <?= $nom ?> - Email: <?= $email ?>p>

Ce qui donnera aussi dans tous les cas :

Société: CYRUS – Prénom: Julie – Nom: Cambriole – Email: jc@tutu.fr

Suite En cours

Certains liens de ce site sont affiliés : si vous passez par ces liens, nous pouvons percevoir une commission, sans surcoût pour vous et sans perte d’une promotion éventuellement en cours. Politique d’affiliation.