English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico PHP

Tutorial avanzado PHP

PHP & MySQL

Manual de referencia PHP

Lectura de datos en PHP

En este tutorial, aprenderás cómo leer registros de una tabla MySQL usando PHP.

Leer datos de la tabla de base de datos

Hasta ahora, ya has aprendido cómo crear bases de datos y tablas y cómo insertar datos. Ahora es el momento de recuperar los datos insertados en el tutorial anterior. SQL SELECTLa sentencia se utiliza para leer registros de la tabla de base de datos. Su sintaxis básica es la siguiente:

SELECT  column1_name, column2_name, columnN_name  FROM  table_name ;

Vamos a usar la sentencia SELECT para realizar consultas SQL, luego ejecutaremos esta consulta SQL pasándola al función PHP mysqli_query() para recuperar los datos de la tabla.

Por favor, vea nuestrospersonsLa tabla de base de datos tiene los siguientes registros:

+----+------------+-----------+----------------------+
| id | first_name | last_name | email                |
+----+------------+-----------+----------------------+
|}}  1 | Peter      | Parker    | [email protected] |
|}}  2 | John       | Rambo     | [email protected]   |
|}}  3 | Clark      | Kent      | [email protected]   |
|}}  4 | John       | Carter    | [email protected]  |
|}}  5 | Harry | Potter | [email protected] |
+----+------------+-----------+----------------------+

El siguiente ejemplo de código PHP selecciona todos los datos almacenados en la tabla persons (usando el carácter de asterisco (*):*) en lugar de los nombres de las columnas para seleccionar todos los datos de la tabla.

Ejemplo: método orientado a procedimientos

<?php
/*Intentar conectar con el servidor MySQL. Supongamos que está ejecutando MySQL.
Servidor con configuración predeterminada (usuario sin contraseña "root") */
$link = mysqli_connect("localhost", "root", "", "demo");
 
//Verificar la conexión
if($link === false){
    die("Error: No se puede conectar. " . mysqli_connect_error());
}
 
//Intentar ejecutar una consulta de selección
$sql = "SELECT * FROM persons";
if($result = mysqli_query($link, $sql)){
    if(mysqli_num_rows($result) > 0){
        echo "<table>";
            echo "<tr>";
                echo "<th>id</th>";
                echo "<th>first_name</th>";
                echo "<th>last_name</th>";
                echo "<th>email</th>";
            echo "</tr>";
        while($row = mysqli_fetch_array($result)){
            echo "<tr>";
                echo "<td>" . $row['id'] . "</td>";
                echo "<td>" . $row['first_name'] . "</td>";
                echo "<td>" . $row['last_name'] . "</td>";
                echo "<td>" . $row['email'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        // Liberar el conjunto de resultados
        mysqli_free_result($result);
    } else{
        echo "No se encontraron registros que coincidan con su consulta.";
    }
} else{
    echo "Error: No se puede ejecutar $sql. " . mysqli_error($link);
}
 
//Cerrar la conexión
mysqli_close($link);
?>

Ejemplo: método orientado a objetos

<?php
/*Intentar conectar con el servidor MySQL. Supongamos que está ejecutando MySQL.
Servidor con configuración predeterminada (usuario sin contraseña "root") */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
//Verificar la conexión
if($mysqli === false){
    die("Error: No se puede conectar. " . $mysqli->connect_error);
}
 
//Intente seleccionar la ejecución de la consulta
$sql = "SELECT * FROM persons";
if($result = $mysqli->query($sql)){
    if($result->num_rows > 0){
        echo "<table>";
            echo "<tr>";
                echo "<th>id</th>";
                echo "<th>first_name</th>";
                echo "<th>last_name</th>";
                echo "<th>email</th>";
            echo "</tr>";
        while($row = $result->fetch_array()){
            echo "<tr>";
                echo "<td>" . $row['id'] . "</td>";
                echo "<td>" . $row['first_name'] . "</td>";
                echo "<td>" . $row['last_name'] . "</td>";
                echo "<td>" . $row['email'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        //Liberar el conjunto de resultados
        $result->free();
    } else{
        echo "No se encontraron registros que coincidan con su consulta.";
    }
} else{
    echo "Error: No se puede ejecutar $sql. " . $mysqli->error;
}
 
//Cerrar la conexión
$mysqli->close();
?>

Ejemplo: método PDO

<?php
/*Intentar conectar con el servidor MySQL. Supongamos que está ejecutando MySQL.
Servidor con configuración predeterminada (usuario sin contraseña "root") */
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    //Establecer el modo de error de PDO en excepción
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("Error: No se puede conectar. " . $e)->getMessage());
}
 
//Intente seleccionar la ejecución de la consulta
try{
    $sql = "SELECT * FROM persons";   
    $result = $pdo->query($sql);
    if($result->rowCount() > 0){
        echo "<table>";
            echo "<tr>";
                echo "<th>id</th>";
                echo "<th>first_name</th>";
                echo "<th>last_name</th>";
                echo "<th>email</th>";
            echo "</tr>";
        while($row = $result->fetch()){
            echo "<tr>";
                echo "<td>" . $row['id'] . "</td>";
                echo "<td>" . $row['first_name'] . "</td>";
                echo "<td>" . $row['last_name'] . "</td>";
                echo "<td>" . $row['email'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        //Liberar el conjunto de resultados
        unset($result);
    } else{
        echo "No se encontraron registros que coincidan con su consulta.";
    }
} catch(PDOException $e){
    die("Error: No se puede ejecutar $sql. " . $e->getMessage());
}
 
//Cerrar la conexión
unset($pdo);
?>

Uso del código (estilo de programa)

En el ejemplo anterior, los datos devueltos por la función mysqli_query() se almacenan en la variable $result. Cada vez que se llama a mysqli_fetch_array(), devuelve la siguiente fila en el conjunto de resultados como un array.bucle whileSe utiliza para buscar todas las filas en el conjunto de resultados. Finalmente, se puede pasar el índice de campo o el nombre del campo al variable $row (por ejemplo $row['id'] o $row[0],$row['first_name'] o $row [1,$row['last_name'] o $row[2,$row['email'] o $row[3)para acceder al valor de un campo individual en la línea.

Si desea usarbucle forSe puede obtener el valor del contador de bucle o el número de filas devueltas por la consulta pasando el variable $result a la función mysqli_num_rows(). Este valor de contador de bucle determina cuántas veces debe ejecutarse el bucle.