Database
 sql >> Base de Dados >  >> RDS >> Database

Operação CRUD fácil com conexão de banco de dados PDO


Os bancos de dados estão em toda parte e não há aplicativo PHP prático que possa existir sem um banco de dados. Desde o início, o PHP oferece várias formas de interface com todos os DBMS populares. Por exemplo, duas formas populares de interface com bancos de dados baseados em MySQL são mysql e mysqli.

Ao longo dos anos, os bancos de dados percorreram um longo caminho e agora vários fornecedores diferentes oferecem DBMS populares que alimentam aplicativos PHP modernos. Para padronizar e agilizar as práticas de desenvolvimento, o PHP introduziu o PHP Data Objects (PDO) no PHP 5.1. Esses objetos são usados ​​para configurar conexões de banco de dados PDO.

O PDO é uma camada de acesso ao banco de dados que fornece uma interface rápida e consistente para acessar e gerenciar bancos de dados em aplicativos PHP. Cada SGBD possui drivers PDO específicos que devem ser instalados quando você estiver usando PDO em aplicativos PHP.

Bancos de dados compatíveis


Nome do driverBanco de dados suportado
PDO_CUBRID Cubrido
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 Interface de chamada do Oracle
PDO_ODBC ODBC v3 (IBM DB2, unixODBC e win32 ODBC)
PDO_PGSQL PostgreSQL
PDO_SQLITE SQLite 3 e SQLite 2
PDO_SQLSRV Microsoft SQL Server / SQL Azure
PDO_4D 4D



Por padrão, o PHP possui o driver PDO_SQLite instalado. No entanto, se você deseja trabalhar com outros bancos de dados, você deve primeiro instalar o driver relevante.

para verificar quais drivers estão instalados em seu sistema, crie um novo arquivo PHP e adicione o seguinte trecho de código a ele:
<?php

print_r(PDO::getAvailableDrivers());

?>

Trabalhando com PDO


O PDO substitui todas as abordagens anteriores de interação com o banco de dados. Usando o PDO, você pode facilmente executar CRUD e operações de DBMS relacionadas. Na verdade, o PDO atua como uma camada que separa as operações relacionadas ao banco de dados do restante do código.

Você também pode gostar de:  CRUD simples em PHP e MySQL

Conectividade


Um dos benefícios mais importantes do PDO é a conectividade de banco de dados simples e muito direta. Considere o seguinte trecho de código que é usado para configurar conexões com o banco de dados. Observe que quando o DBMS subjacente é alterado, a única alteração que você precisa fazer é o tipo de banco de dados.
<?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;

	}

}

?>

No trecho de código acima, observe que o DBMS é MySQL. No entanto, se o DBMS for alterado para MS SQL Server, a única alteração será a substituição do mysql com mssql.

Observação: O PDO pode lidar com exceções. Portanto, sempre envolva sua operação em um bloco try and catch.

Pare de perder tempo com servidores


A Cloudways cuida do gerenciamento de servidores para você, para que você possa se concentrar na criação de ótimos aplicativos e manter seus clientes satisfeitos.

Comece grátis

Criando uma tabela com PDO


Para criar uma tabela, primeiro declare uma string de consulta e execute-a com exec função, pois nenhum dado será retornado.
<?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();

}

?>

Inserindo dados com PDO


Para inserir dados em uma tabela usando PDO, primeiro prepare a consulta usando prepare demonstração. Em seguida, esta consulta é executada com o comando execute função. Observe que essa prática evita ataques de injeção de 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();

}

?>

Selecionar dados com PDO


Para selecionar dados, primeiro crie uma string de consulta e execute-a em um para cada loop para buscar registros da tabela.
<?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();

}

?>

Atualizar dados com PDO


Para atualizar um registro na tabela, primeiro declare uma string de consulta e depois execute-a com exec função.
<?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();

}

?>

Excluir dados com PDO


Para excluir um registro da tabela, primeiro declare uma string de consulta e execute-a com exec função.
<?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();

}

?>

Conclusão


PDO é a camada de acesso a dados que facilita muito o processo de conexão e trabalho com bancos de dados. Talvez a melhor coisa sobre o PDO seja o processo simplificado de migração de banco de dados. Se você quiser acelerar suas consultas PDO com iteradores, confira este artigo de Michelangelo van Dam.

Neste artigo, apresentei o PDO e destaquei como você pode executar ações CRUD usando o PDO em PHP. Também demonstrei a configuração de conexões de banco de dados PDO. Se você tiver dúvidas ou gostaria de adicionar à discussão, deixe um comentário abaixo.