Lire des données
Connexion et vérification de la BDD
Connexion
$pdo = new PDO('mysql:host=localhost;dbname=test';charset=utf8', 'root', '');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Pour utiliser ? dans les LIMIT
$pdo->setAttribute( PDO::ATTR_EMULATE_PREPARES, FALSE);
// Retourne le résultat sous forme d'objet
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
Les requêtes
Requête simple
$req = $bdd->query('
SELECT nom, prix
FROM jeux
WHERE console IN ('Xbox', 'PS2') /* console='Xbox' OR console='PS2' */
ORDER BY prix DESC
LIMIT 0,10
');
Requête avec des variables
$req = $bdd->prepare('
SELECT nom
FROM jeux_video
WHERE possesseur = ?
AND prix <= ?
');
$req->execute([$_GET['possesseur'], $_GET['prix_max']]);
Requête avec des variables nominative
$req = $bdd->prepare('
SELECT nom, prix
FROM jeux_video
WHERE possesseur = :possesseur
AND prix <= :prixmax
') or die(print_r($bdd->errorInfo()));
$req->execute([
'possesseur' => $_GET['possesseur'],
'prixmax' => $_GET['prix_max']
]);
Retourner un tableau pour le foreach
Plusieur lignes
$data = $req->fetchAll();
Une seule ligne
$data = $req->fetch();
Afficher une requête
foreach($articles as $article):
$article->title;
endforeach;
Compter les entrées
$req = $bdd->prepare('
SELECT COUNT(*) AS nbr
FROM bibliotheque
WHERE auteur = ?
');
$req->execute([$_GET['id']]);
$data = $req->fetch();
$data['nbr'] // On retrouve le nombre de pseudo dans cette variable
Compter uniquement les entrée qui sont différentes de NULL
$req = $bdd->prepare('
SELECT COUNT(livre_lu) AS nbr_livre_lu
FROM bibliotheque
');
Compter le nombre de valeurs distinctes sur un champ
$req = $bdd->prepare('
SELECT COUNT(DISTINCT auteur) AS nbr_auteur
FROM bibliotheque
');
Faire des recherche par mots clé dans la BDD
$req = $bdd->prepare('SELECT * FROM uploads WHERE nomTel LIKE ?');
$req ->execute(array('%'. $_POST["search"] .'%'));
Requête nominative avec LIMIT
$req = $bdd->prepare('SELECT * FROM syllabes LIMIT :debut,:fin');
$req->bindValue(':debut', $debut, PDO::PARAM_INT);
$req->bindParam(':fin', $fin, PDO::PARAM_INT);
$req->execute();