sql >> Base de Datos >  >> RDS >> Database

Fácil operación CRUD con conexión de base de datos PDO

Las bases de datos están en todas partes y no existe una aplicación PHP práctica que pueda existir sin una base de datos. Desde el principio, PHP ofrece varias formas de interactuar con todos los DBMS populares. Por ejemplo, dos formas populares de interactuar con bases de datos basadas en MySQL son mysql y mysqli.

A lo largo de los años, las bases de datos han recorrido un largo camino y ahora varios proveedores diferentes ofrecen DBMS populares que potencian las aplicaciones PHP modernas. Para estandarizar y agilizar las prácticas de desarrollo, PHP introdujo PHP Data Objects (PDO) en PHP 5.1. Estos objetos se utilizan para configurar conexiones de bases de datos PDO.

PDO es una capa de acceso a bases de datos que proporciona una interfaz rápida y consistente para acceder y administrar bases de datos en aplicaciones PHP. Cada DBMS tiene controladores PDO específicos que deben instalarse cuando se utiliza PDO en aplicaciones PHP.

Bases de datos compatibles

Nombre del controlador Base de datos admitida

PDO_CUBRID Cubrid
PDO_DBLIB FreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRD Firebird
PDO_IBM IBM DB2
PDO_INFORMIX IBM Informix Dynamic Server
PDO_MYSQL MySQL 3.x/4.x/5.x
PDO_OCI Interfaz de llamadas de Oracle
PDO_ODBC ODBC v3 (IBM DB2, unixODBC y win32 ODBC)
PDO_PGSQL PostgreSQL
PDO_SQLITE SQLite 3 y SQLite 2
PDO_SQLSRV Microsoft SQL Server / SQL Azure
PDO_4D 4D

De forma predeterminada, PHP tiene instalado el controlador PDO_SQLite. Sin embargo, si desea trabajar con otras bases de datos, primero debe instalar el controlador correspondiente.

para verificar qué controladores están instalados en su sistema, cree un nuevo archivo PHP y agregue el siguiente fragmento de código:

<?php

print_r(PDO::getAvailableDrivers());

?>

Trabajar con PDO

PDO reemplaza todos los enfoques de interacción de bases de datos anteriores. Usando PDO, puede realizar fácilmente operaciones CRUD y DBMS relacionadas. En efecto, PDO actúa como una capa que separa las operaciones relacionadas con la base de datos del resto del código.

También te puede interesar:  CRUD simple en PHP y MySQL

Conectividad

Uno de los beneficios más importantes de PDO es la conectividad de base de datos simple y muy directa. Considere el siguiente fragmento de código que se usa para configurar conexiones con la base de datos. Tenga en cuenta que cuando cambia el DBMS subyacente, el único cambio que necesita hacer es el tipo de base de datos.

<?php

Class Connection {

private  $server = "mysql:host=localhost;dbname=cloudways";

private  $user = "root";

private  $pass = "";

private $options  = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,);

protected $con;
 
          	public function openConnection()

           	{

               try

                 {

	        $this->con = new PDO($this->server, $this->user,$this->pass,$this->options);

	        return $this->con;

                  }

               catch (PDOException $e)

                 {

                     echo "There is some problem in connection: " . $e->getMessage();

                 }

           	}

public function closeConnection() {

   	$this->con = null;

	}

}

?>

En el fragmento de código anterior, observe que el DBMS es MySQL. Sin embargo, si el DBMS cambia a MS SQL Server, el único cambio será el reemplazo de mysql con mssql.

Nota: PDO puede manejar excepciones. Por lo tanto, siempre envuelva su operación en un bloque de prueba y captura.


Deje de perder el tiempo en los servidores

Cloudways maneja la administración del servidor por usted para que pueda concentrarse en crear excelentes aplicaciones y mantener contentos a sus clientes.

Comience gratis


Crear una tabla con PDO

Para crear una tabla, primero declare una cadena de consulta y luego ejecútela con exec ya que no se devolverán datos.

<?php

include_once 'connection.php';

try

{

     $database = new Connection();

     $db = $database->openConnection();

     // sql to create table

     $sql = "CREATE TABLE `Student` ( `ID` INT NOT NULL AUTO_INCREMENT , `name`VARCHAR(40) NOT NULL , `last_ame` VARCHAR(40) NOT NULL , `email` VARCHAR(40)NOT NULL , PRIMARY KEY (`ID`)) ";

     // use exec() because no results are returned

     $db->exec($sql);

     echo "Table Student created successfully";

     $database->closeConnection();

}

catch (PDOException $e)

{

    echo "There is some problem in connection: " . $e->getMessage();

}

?>

Inserción de datos con PDO

Para insertar datos en una tabla usando PDO, primero prepare la consulta usando preparar declaración. A continuación, esta consulta se ejecuta con ejecutar función. Tenga en cuenta que esta práctica previene los ataques de inyección SQL.

<?php

include_once 'connection.php';

try

{

    $database = new Connection();

    $db = $database->openConnection();

    // inserting data into create table using prepare statement to prevent from sql injections

    $stm = $db->prepare("INSERT INTO student (ID,name,last_name,email) VALUES ( :id, :name, :lastname, :email)") ;

    // inserting a record

    $stm->execute(array(':id' => 0 , ':name' => 'Saquib' , ':lastname' => 'Rizwan' , ':email' => '[email protected]'));

    echo "New record created successfully";

}

catch (PDOException $e)

{

    echo "There is some problem in connection: " . $e->getMessage();

}

?>

Seleccionar datos con PDO

Para seleccionar datos, primero cree una cadena de consulta y luego ejecútela en un para cada bucle para obtener registros de la tabla.

<?php

include_once 'connection.php';

try

{

    $database = new Connection();

    $db = $database->openConnection();

    $sql = "SELECT * FROM student " ;

    foreach ($db->query($sql) as $row) {

    echo " ID: ".$row['ID'] . "<br>";

    echo " Name: ".$row['name'] . "<br>";

    echo " Last Name: ".$row['last_name'] . "<br>";

    echo " Email: ".$row['email'] . "<br>";

    }

}

catch (PDOException $e)

{

    echo "There is some problem in connection: " . $e->getMessage();

}

?>

Actualizar datos con PDO

Para actualizar un registro en la tabla, primero declare una cadena de consulta y luego ejecútela con exec función.

<?php

include_once 'connection.php';

try

{

     $database = new Connection();

     $db = $database->openConnection();

     $sql = "UPDATE `student` SET `name`= 'yourname' , `last_name` = 'your lastname' , `email` = 'your email' WHERE `id` = 8" ;

     $affectedrows  = $db->exec($sql);

   if(isset($affectedrows))

    {

       echo "Record has been successfully updated";

    }          

}

catch (PDOException $e)

{

    echo "There is some problem in connection: " . $e->getMessage();

}

?>

Eliminar datos con PDO

Para eliminar un registro de la tabla, primero declare una cadena de consulta y luego ejecútela con exec función.

<?php

include_once 'connection.php';

try

{

     $database = new Connection();

     $db = $database->openConnection();

     $sql = "DELETE FROM student WHERE `id` = 8" ;

     $affectedrows  = $db->exec($sql);

   if(isset($affectedrows))

    {

       echo "Record has been successfully deleted";

    }          

}

catch (PDOException $e)

{

   echo "There is some problem in connection: " . $e->getMessage();

}

?>

Conclusión

PDO es la capa de acceso a datos que facilita enormemente el proceso de conexión y trabajo con bases de datos. Quizás, lo mejor de PDO es el proceso simplificado de migración de la base de datos. Si desea acelerar sus consultas de PDO con iteradores, consulte este artículo de Michelangelo van Dam.

En este artículo, presenté PDO y destaqué cómo podría realizar acciones CRUD usando PDO en PHP. También demostré la configuración de conexiones de base de datos PDO. Si tiene preguntas o desea participar en la discusión, deje un comentario a continuación.