Quando estamos dando os primeiros passos no desenvolvendo de sistemas web, em algum momento inevitavelmente caímos nas conexões em servidores de banco de dados com PHP.

Logo neste artigo descrevo como realizar tal tarefa apresentando seus prós e contras para cada tipo de conexão.

MySQL

(PHP 4, PHP 5)

Esta tipo de conexão ainda existe por questões de compatibilidade mas não deve ser mais utilizada. A mesma foi projetada para permitir o desenvolvimento de aplicativos PHP que interagem com um banco de dados MySQL, mas foi substituída pela extensão MySQLi.

MySQLi

(PHP 5, PHP 7)

Está é a extensão recomendada para conexão com o banco de dados MySQL. Implementa diversos novos recursos em relação a extensão MySQL da sessão anterior como por exemplo:

  • Interface orientada a objetos
  • Suporte para declarações preparadas
  • Suporte para várias declarações
  • Suporte para transações
  • Recursos aprimorados de depuração
  • Suporte ao servidor incorporado

PDO

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

O PHP Data Objects fornece uma API que permite uma conexão com qualquer tipo de banco de dados, isto é, você conta com a possibilidade de mudar o servidor de banco de dados realizando apenas algumas alterações nó código mas utilizando a mesma interface.

Por outro lado essa facilidade em sua configuração conta com as suas limitações. Segundo a documentação oficial, o PDO não contém recursos avançados como por exemplo suporte a várias instruções para MySQL.

Comparação de Recursos

A documentação oficial do PHP fornece uma tabela de comparação entre os recursos disponíveis em cada método de conexão, a qual você pode conferir abaixo.

Portanto hoje as duas formas mais utilizadas de conexão com banco de dados MySQL ocorre através da extensão MySQLi e objeto de dados PDO. Ambas funcionam bem e a implementação das mesmas irá depender principalmente dos recursos aos quais seu projeto irá necessitar.

Código Fonte

PDO

//https://www.php.net/manual/pt_BR/class.pdo.php
<?php
    $pdo = new PDO("mysql:host=HOST; dbname=BASE", "USUARIO", "SENHA"); 
?>

MySQLi

//https://www.php.net/manual/pt_BR/function.mysqli-connect.php
<?php
    $link = mysqli_connect("HOST", "USUARIO", "SENHA", "BASE");
 
    if (!$link) {
        echo "Error: Falha ao conectar-se com o banco de dados MySQL." . PHP_EOL;
        echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
        echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
        exit;
    }
 
    echo "Sucesso: Sucesso ao conectar-se com a base de dados MySQL." . PHP_EOL;
 
    mysqli_close($link);
?> 

MySQL

//https://www.php.net/manual/en/function.mysql-connect.php
<?php
    $link = mysql_connect('HOST', 'BASE', 'SENHA');
    if (!$link) {
        die('Erro ao conectar ao banco: ' . mysql_error());
    }
    echo 'Conectado com sucesso';
    mysql_close($link);
?> 

Referências

https://www.php.net/manual/pt_BR/mysqli.overview.php

https://www.php.net/manual/en/function.mysql-connect.php

https://www.php.net/manual/pt_BR/function.mysqli-connect.php

https://www.php.net/manual/pt_BR/class.pdo.php

Até o próximo artigo!


25 Posts