¿Cómo obtener datos de la base de datos en PHP?

Las operaciones de base de datos en PHP son algo muy importante que se necesita especialmente en las operaciones CRUD (Crear, Leer, Actualizar y Eliminar).

En este artículo, discutiremos la parte de lectura , es decir, la obtención de datos de la base de datos.

Hay dos formas de conectarse a una base de datos usando PHP. Son los siguientes.

  1. MySQLi (“i” significa mejorado)
  2. PDO (objetos de datos PHP)

MySQLi vs PDO : ambas formas son realmente buenas, pero solo hay una diferencia entre los dos métodos, PDO puede funcionar en 12 sistemas de bases de datos diferentes, mientras que MySQLi funciona solo con bases de datos MySQL.

Conexión a una base de datos:

  • MySQLi orientado a objetos 

    $conn = new mysqli($servername, $username, $databasename)
  • Procedimiento MySQLi

    $conn = mysqli_connect($servername, 
        $username, $password, $databasename);
  • DOP

    $conn = new PDO("mysql:host=$servername;dbname=myDB",
        $username, $password, $databasename);

Ejecución de consultas: después de conectarnos a la base de datos, debemos ejecutar consultas para obtener datos. En las operaciones de lectura, usaremos solo consultas de selección para obtener datos de la base de datos.

  • MySQLi orientado a objetos

    $conn->query($query);
  • Procedimiento MySQLi

    mysqli_query($conn, $query)
  • DOP

    $stmt = $conn->prepare($query);
    $stmt->execute();

Cerrar conexión: después de realizar la búsqueda, debe cerrar la conexión a la base de datos utilizando la función close() .

$conn->close();

Base de datos de muestra

Crear tabla en la base de datos:

CREATE TABLE `Student Details` (
  `Roll_No` int(11) NOT NULL,
  `Name` varchar(255) NOT NULL,
  `City` varchar(255) NOT NULL,
  `Age` int(11) NOT NULL,
  PRIMARY KEY (`Roll_No`)
);

Detalles del estudiante

Enfoque orientado a objetos de MySQLi:

Código PHP:

PHP

<?php
  
  $servername = "localhost";
  $username = "root";
  $password = "";
  $databasename = "geeksforgeeks";
  
  // CREATE CONNECTION
  $conn = new mysqli($servername,
    $username, $password, $databasename);
  
  // GET CONNECTION ERRORS
  if ($conn->connect_error) {
      die("Connection failed: " . $conn->connect_error);
  }
  
  // SQL QUERY
  $query = "SELECT * FROM `Student Details`;";
  
  // FETCHING DATA FROM DATABASE
  $result = $conn->query($query);
  
    if ($result->num_rows > 0) 
    {
        // OUTPUT DATA OF EACH ROW
        while($row = $result->fetch_assoc())
        {
            echo "Roll No: " .
                $row["Roll_No"]. " - Name: " .
                $row["Name"]. " | City: " . 
                $row["City"]. " | Age: " . 
                $row["Age"]. "<br>";
        }
    } 
    else {
        echo "0 results";
    }
  
   $conn->close();
  
?>

Producción:

Roll No: 1 - Name: Ram | City: Delhi | Age: 18
Roll No: 2 - Name: Shyam | City: Mumbai | Age: 19
Roll No: 3 - Name: Rohit | City: Chennai | Age: 18
Roll No: 4 - Name: Suresh | City: Kolkata | Age: 20

Enfoque de procedimiento MySQLi:

Código PHP:

PHP

<?php
  
  $servername = "localhost";
  $username = "root";
  $password = "";
  $databasename = "geeksforgeeks";
  
  // CREATE CONNECTION
  $conn = mysqli_connect($servername, 
    $username, $password, $databasename);
  
  // GET CONNECTION ERRORS
  if (!$conn) {
      die("Connection failed: " . mysqli_connect_error());
  }
  
  // SQL QUERY
  $query = "SELECT Roll_No, Name FROM `Student Details`;";
  // FETCHING DATA FROM DATABASE
  $result = mysqli_query($conn, $query);
  
  if (mysqli_num_rows($result) > 0) {
      // OUTPUT DATA OF EACH ROW
      while($row = mysqli_fetch_assoc($result)) {
          echo "Roll No: " . $row["Roll_No"]
          . " - Name: " . $row["Name"]. "<br>";
      }
  } else {
      echo "0 results";
  }
  
  $conn->close();
  
?>

Producción:

Roll No: 1 - Name: Ram
Roll No: 2 - Name: Shyam
Roll No: 3 - Name: Rohit
Roll No: 4 - Name: Suresh

Enfoque de DOP:

Código PHP:

PHP

<?php
  
  $servername = "localhost";
  $username = "root";
  $password = "";
  $databasename = "geeksforgeeks";
  
  // CREATE CONNECTION
  $conn = mysqli_connect($servername, 
    $username, $password, $databasename);
  
  // GET CONNECTION ERRORS
  if (!$conn) {
      die("Connection failed: " . mysqli_connect_error());
  }
  
  // SQL QUERY
  $query = "SELECT Roll_No, Name, City FROM `Student Details` WHERE Age > 18;";
  
  try 
  {
      $conn = new PDO(
        "mysql:host=$servername;dbname=$databasename", 
        $username, $password);
  
      $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $stmt = $conn->prepare($query);
      // EXECUTING THE QUERY
      $stmt->execute();
  
      $r = $stmt->setFetchMode(PDO::FETCH_ASSOC);
      // FETCHING DATA FROM DATABASE
      $result = $stmt->fetchAll();
      // OUTPUT DATA OF EACH ROW
      foreach ($result as $row) 
      {
          echo "Roll No: " . $row["Roll_No"]. " - Name: " . 
            $row["Name"]. " | City: " . $row["City"]. "<br>";
      }
  } catch(PDOException $e) {
      echo "Error: " . $e->getMessage();
  }
  
$conn->close();
  
?>

Producción:

Roll No: 2 - Name: Shyam | City: Mumbai
Roll No: 4 - Name: Suresh | City: Kolkata

Publicación traducida automáticamente

Artículo escrito por abir22197072 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *