tutoriais mais recente desenvolvimento web
 

PHP Conectar ao MySQL


PHP 5 e mais tarde pode trabalhar com um banco de dados MySQL usando:

  • Extensão MySQLi (the "i" stands for improved)
  • DOP (PHP Data Objects)

As versões anteriores do PHP utilizada a extensão MySQL. No entanto, esta extensão foi depreciado em 2012.


Devo usar MySQLi ou DOP?

Se você precisa de uma resposta curta, seria "Whatever you like" .

Ambos MySQLi e DOP têm suas vantagens:

DOP vai funcionar em 12 sistemas de banco de dados diferentes, onde, como MySQLi só irá trabalhar com bancos de dados MySQL.

Então, se você tem que mudar seu projeto para usar outro banco de dados, DOP torna o processo mais fácil. Você só tem que alterar a seqüência de conexão e algumas consultas. Com MySQLi, você precisará reescrever o código inteiro - consultas incluído.

Ambos são orientada a objeto, mas MySQLi também oferece uma API procedural.

Ambos suportam instruções preparadas. Declarações preparadas proteger de injeção de SQL, e são muito importantes para a segurança de aplicações web.


MySQL Exemplos Em ambos os MySQLi e DOP Sintaxe

Neste e nos próximos capítulos demonstramos três maneiras de trabalhar com PHP e MySQL:

  • MySQLi (object-oriented)
  • MySQLi (procedural)
  • DOP

Instalação MySQLi

Para Linux e Windows: A extensão MySQLi é instalado automaticamente na maioria dos casos, quando o pacote php5 mysql está instalado.

Para detalhes da instalação, acesse: http://php.net/manual/en/mysqli.installation.php


Instalação DOP

Para detalhes da instalação, acesse: http://php.net/manual/en/pdo.installation.php


Abre uma conexão com MySQL

Antes de nós pode acessar os dados no banco de dados MySQL, é preciso ser capaz de se conectar ao servidor:

Exemplo (MySQLi Object-Oriented)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

Nota-se no exemplo orientada a objectos acima: $ connect_error foi quebrada até PHP 5.2.9 e 5.3.0. Se você precisa para garantir a compatibilidade com as versões do PHP anteriores à 5.2.9 e 5.3.0, utilize o seguinte código em vez disso:

// Verifique a conexão
se ( mysqli_connect_error() ) {
die("Database connection failed: " . mysqli_connect_error() );
}

Exemplo (MySQLi Procedural)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

Exemplo (PDO)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
    $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully";
    }
catch(PDOException $e)
    {
    echo "Connection failed: " . $e->getMessage();
    }
?>

Note-se que no exemplo acima DOP também ter uma base de dados especificada (myDB) . DOP requerem um banco de dados válido para se conectar. Se nenhum banco de dados for especificado, uma exceção é lançada.

Dica: Um grande benefício da DOP é que ele tem uma classe de exceção para lidar com quaisquer problemas que possam ocorrer nas nossas consultas de banco de dados. Se uma exceção é lançada dentro do bloco try {}, o script pára a execução e flui diretamente para o primeiro catch() {} bloco.


Fechar a conexão

A conexão será fechada automaticamente quando o script termina. Para fechar a conexão antes, use o seguinte:

Exemplo (MySQLi Object-Oriented)

$conn->close();

Exemplo (MySQLi Procedural)

mysqli_close($conn);

Exemplo (PDO)

$conn = null;