Lire les données de la base de données MySQL
L'instruction SELECT est utilisée pour lire les données d'une table de données :
SELECT nom_colonne(s) FROM nom_table
Nous pouvons utiliser le signe * pour lire tous les champs de la table de données :
SELECT * FROM nom_table
Pour en savoir plus sur SQL, visitez nos didacticiels SQL.
Utiliser MySQL
Dans l'exemple suivant, nous lisons les données des colonnes id, firstname et lastname de la table MyGuests de la base de données myDB et les affichons sur la page :
Exemple (MySQLi - Orienté Objet)
<?php $ servername = " localhost " ; $username = " username " ; $ password = " password " $ dbname = " myDB " ; $conn = nouveau mysqli ( $servername , $username , $password , $dbname ) // Vérifier la connexion ; si ( $conn -> erreur_connexion ) { die ( " Échec de la connexion : " . $conn -> connect_error ) } ; $sql = " SELECT id, prénom, nom FROM MyGuests " ; $ result = $conn -> requête ( $sql ) ; ( $result -> num_rows > 0 ) { // données de sortie while ( $row = $result -> fetch_assoc ( ) ) { écho " id : " . $ row [ " id " ] ." . $row [ " nom " ] . " <br> " ; } } autre { écho " 0 résultats " ; } $conn -> fermer ( ) ? > Le code ci-dessus s'analyse comme suit :
Tout d’abord, nous configurons l’instruction SQL pour lire les trois champs identifiant, prénom et nom de la table de données MyGuests. Ensuite, nous utilisons l'instruction SQL modifiée pour récupérer le jeu de résultats de la base de données et l'attribuer à la variable copiée $result.
La fonction num_rows() détermine les données renvoyées.
Si plusieurs éléments de données sont renvoyés, la fonction fetch_assoc() place l'ensemble combiné dans un tableau associatif et le génère dans une boucle. while() boucle le jeu de résultats et affiche les trois valeurs de champ id, firstname et lastname.
L'exemple suivant utilise l'approche orientée processus de MySQLi et l'effet est similaire au code ci-dessus :
Exemple (MySQLi - Orienté procédure)
<?php $ servername = " localhost " ; $username = " username " ; $ password = " password " $ dbname = " myDB " ; $conn = mysqli_connect ( $servername , $username , $password , $dbname ) // Vérifier la connexion ; si ( ! $conn ) { die ( " Échec de la connexion : " . mysqli_connect_error ( ) ) } ; $sql = " SELECT id, prénom, nom FROM MyGuests " ; $result = mysqli_query ( $conn , $sql ) si ; ( mysqli_num_rows ( $result ) > 0 ) { // données de sortie tandis que ( $row = mysqli_fetch_assoc ( $result ) ) { écho " id : " . $ row [ " id " ] ." . $row [ " nom " ] . " <br> " ; } } autre { écho " 0 résultats " ; } mysqli_close ( $conn ) ? > Utilisation de PDO (+ prétraitement)
Les exemples suivants utilisent des instructions préparées.
Sélectionnez les champs id, firstname et lastname de la table MyGuests et placez-les dans la table HTML :
Exemple (AOP)
<?php écho " <table style='border: solid 1px black;' > " ; " <tr><th>Id</th><th>Prénom</th><th>Nom</th> </tr> " ; Lignes de table s'étend RécursiveIteratorIterator { fonction __construct ( $it ) { parent :: __construct ( $it , self :: LEAVES_ONLY ) } ; fonction actuel ( ) { retour " <td style='width:150px;border:1px solid black; ' > " . parent :: current ( ) " </td> " } fonction commencerEnfants ( ) { écho " <tr> " ; fonction finEnfants ( ) { écho " </tr> " .} $ servername = " localhost " ; $ username = " username " ; $password = " password " $dbname = " myDBPDO " ; { $conn = nouveau PDO ( " mysql:host= $ servername ; dbname= $ dbname " , $ username , $ password ) ; $ conn - > setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION ) ; SELECT id, prénom, nom FROM MyGuests " ) ; $stmt -> exécuter ( ) ; // Définit le jeu de résultats en tant que tableau associatif $result = $stmt -> setFetchMode ( PDO :: FETCH_ASSOC ) foreach ( nouveau ; TableRows ( nouveau RécursiveArrayIterator ( $stmt -> fetchAll ( ) ) ) comme $k => $v ) { écho $ v ; } attraper ( PDOException $e ) { écho " Erreur : " $ e - > getMessage ( ) ; $conn = nul ; écho " </table> " ;