Ler dados do banco de dados MySQL
A instrução SELECT é usada para ler dados de uma tabela de dados:
SELECIONE nome(s) da(s) coluna(s) FROM nome_da_tabela
Podemos usar o sinal * para ler todos os campos da tabela de dados:
SELECIONE * FROM nome_da_tabela
Para saber mais sobre SQL, visite nossos tutoriais de SQL.
UsandoMySQLi
No exemplo a seguir, lemos os dados das colunas id, nome e sobrenome da tabela MyGuests do banco de dados myDB e os exibimos na página:
Exemplo (MySQLi - Orientado a Objetos)
<?php $servername = " localhost " ; $username = " nomedeusuário " ; $ password = " password " ; $ dbname = " myDB " ; $conn = novo mysqli ( $servername , $username , $password , $dbname ) ; // Verifica a conexão se ( $conn -> connect_error ) { die ( " Falha na conexão: " . $conn -> connect_error ) } ; $sql = " SELECIONE id, nome
, sobrenome FROM MyGuests " ; $resultado = $conn -> consulta ( $sql ) ; ( $resultado -> num_rows > 0 ) { // dados de saída while ( $linha = $resultado -> fetch_assoc ( ) ) { eco " id : " . $ row [ " id " ] ." . $row [ " sobrenome " ] . " <br> " ; } } outro { eco " 0 resultados " ; $conn -> fechar ( ) ? > O código acima é analisado da seguinte forma:
Primeiro, configuramos a instrução SQL para ler os três campos id, nome e sobrenome da tabela de dados MyGuests. Em seguida, usamos a instrução SQL modificada para recuperar o conjunto de resultados do banco de dados e atribuí-lo à variável copiada $resultado.
A função num_rows() determina os dados retornados.
Se vários dados forem retornados, a função fetch_assoc() coloca o conjunto combinado em um array associativo e o gera em um loop. while() faz um loop no conjunto de resultados e gera os três valores de campo de id, nome e sobrenome.
O exemplo a seguir usa a abordagem orientada a processos do MySQLi e o efeito é semelhante ao código acima:
Exemplo (MySQLi - Orientado a Procedimentos)
<?php $servername = " localhost " ; $username = " nomedeusuário " ; $ password = " password " ; $ dbname = " myDB " ; $conn = mysqli_connect ( $servername , $username , $password , $dbname ) ; // Verifica a conexão; se ( ! $con ) { die ( " Falha
na conexão: " .mysqli_connect_error ( ) ) } ; $sql = " SELECIONE id, nome, sobrenome FROM MyGuests " ; $ resultado = mysqli_query ( $conn , $sql ) ; ( mysqli_num_rows ( $ resultado ) > 0 ) { // dados de saída while ( $row = mysqli_fetch_assoc ( $resultado ) ) { eco " id : " . $ row [ " id " ] ." . $row [ " sobrenome " ] . " <br> " ; } } outro { eco " 0 resultados " ; mysqli_close ( $ conn ) ; Usando PDO (+ pré-processamento)
Os exemplos a seguir usam instruções preparadas.
Selecionei os campos id, nome e sobrenome da tabela MyGuests e coloquei-os na tabela HTML:
Exemplo (DOP)
<?php eco " <table style='border: solid 1px preto;' > " ; " <tr><th>Id</th><th>Nome</th><th>Sobrenome</th></tr> " classe ; Linhas da tabela estende RecursiveIteratorIterator { função __construir ( $it ) { pai :: __construct ( $ it , self :: LEAVES_ONLY ) ; função atual ( ) { retornar " <td style='width:150px;
border : 1px sólido preto; ' > " . pai :: atual ( ) . função começarCrianças ( ) { eco " <tr> " ; função fimCrianças ( ) { eco " </tr> " . " n " ; } $ nome_do_servidor = " localhost " ; $ nome_do_usuário = " nome_do_usuário " ; $ senha = " senha " ; { $conn = novo PDO ( " mysql:host= $servername ;dbname= $dbname " , $username , $password ) ; $conn -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION ) ; $stmt = $conn -> prepare ( "; SELECT id, nome, sobrenome FROM MyGuests " ) ; $stmt -> execute ( ) ; // Define o conjunto de resultados como um array associativo $ resultado = $ stmt - > setFetchMode ( PDO :: FETCH_ASSOC ) ; TableRows ( novo RecursiveArrayIterator ( $stmt -> fetchAll ( ) ) ) como $k => $v ) { eco $ v ; } catch ( PDOException $e ) { eco " Erro: " . $e - > getMessage ( ) ; $ conn = null ; " </tabela> " ? >