Fabrice Pigou

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();