DEV Community

Alexandre Freire
Alexandre Freire

Posted on

PHP 7 MySQL

Com o PHP, você pode se conectar e manipular bancos de dados. O MySQL é o sistema de banco de dados mais popular usado com o PHP.

Os dados em um banco de dados MySQL são armazenados em tabelas. Uma tabela é uma coleção de dados relacionados e consiste em colunas e linhas. Bancos de dados são úteis para armazenar informações categoricamente. Uma empresa pode ter um banco de dados com as seguintes tabelas:

  • Funcionários
  • Produtos
  • Clientes
  • Encomendas

Sistema de banco de dados PHP + MySQL

O PHP combinado com o MySQL é multi-plataforma (você pode desenvolver no Windows e servir em uma plataforma Unix)

Download do banco de dados MySQL

Se você não tem um servidor PHP com um banco de dados MySQL, você pode baixá-lo gratuitamente aqui: http://www.mysql.com

Conecte-se ao MySQL com PHP

O PHP 5 e posterior podem trabalhar com um banco de dados MySQL usando:

  • Extensão MySQLi (o “i” significa melhorado)
  • PDO (PHP Data Objects)

Versões anteriores do PHP usavam a extensão MySQL. No entanto, essa extensão foi suspensa em 2012.

Instalação MySQLi

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

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

Instalação PDO

Para detalhes de instalação, vá para: http://php.net/manual/en/pdo.installation.php

Abra uma conexão com o MySQL

Antes de podermos acessar os dados no banco de dados MySQL, precisamos nos conectar ao servidor:

Exemplo (orientado a objeto do MySQLi)

 <?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";
?>
Enter fullscreen mode Exit fullscreen mode

PHP é uma linguagem incrível e popular!

Note no exemplo orientado a objetos acima: $connect_error foi quebrado até o PHP 5.2.9 e 5.3.0. Se você precisa garantir compatibilidade com versões do PHP anteriores a 5.2.9 e 5.3.0, use o seguinte código:

// Check connection
if (mysqli_connect_error()) {
    die("Database connection failed: " . mysqli_connect_error());
}
Enter fullscreen mode Exit fullscreen mode

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";
?>
Enter fullscreen mode Exit fullscreen mode

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();
    }
?>
Enter fullscreen mode Exit fullscreen mode

Nota: No exemplo acima, nós também especificamos um banco de dados (myDB). O PDO requer um banco de dados válido para se conectar. Se nenhum banco de dados for especificado, uma exceção será lançada.

Dica: Um grande benefício do PDO é que ele possui uma classe de exceção para lidar com qualquer problema que possa ocorrer em nossas consultas ao banco de dados. Se uma exceção for lançada dentro do bloco try {}, o script para de executar e flui diretamente para o primeiro bloco catch () {}.

Feche a conexão

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

Exemplo (orientado a objeto do MySQLi)

$conn->close();
Enter fullscreen mode Exit fullscreen mode

Exemplo (MySQLi Procedural)

mysqli_close($conn);
Enter fullscreen mode Exit fullscreen mode

Exemplo (PDO)

$conn = null;
Enter fullscreen mode Exit fullscreen mode

Top comments (0)