Resumo : neste tutorial, você aprenderá como se conectar a um servidor de banco de dados PostgreSQL usando PHP PDO.
Pré-requisitos
Para fazer uma conexão com o servidor de banco de dados PostgreSQL usando PHP PDO, você precisa ter:
- Um servidor de banco de dados PostgreSQL, um banco de dados e uma conta com nome de usuário e senha que pode acessar o banco de dados.
- Driver PHP PDO PostgreSQL habilitado no
php.ini
arquivo.
1) Parâmetros do banco de dados PostgreSQL
Suponha que você tenha os seguintes parâmetros de banco de dados PostgreSQL:
- Um servidor de banco de dados PostgreSQL no
localhost
. - O
dvdrental
banco de dados de amostra . - A conta com o usuário
postgres
e senhapostgres
que pode acessar odvdrental
banco de dados no servidor de banco de dados local
O seguinte cria um novo arquivo de configuração de banco de dados chamado config.php
que armazena os parâmetros do banco de dados PostgreSQL:
<?php
$host= 'localhost';
$db = 'dvdrental';
$user = 'postgres';
$password = 'postgres'; // change to your password
Linguagem de código: HTML, XML ( xml )
Para usar esses parâmetros, inclua o config.php
arquivo no script que se conecta ao PostgreSQL usando a require
construção.
2) Habilite o driver PostgreSQL
O PDO_PGSQL é um driver que implementa a interface PDO. Ele permite que você acesse bancos de dados PostgreSQL a partir de PHP.
Para verificar se o driver PDO_PGSQL está habilitado, abra o php.ini
arquivo. Normalmente, o php.ini
arquivo está localizado no php
diretório. Por exemplo, se você usar o XAMPP no Windows, poderá encontrar o php.ini
arquivo no C:\xampp\php
diretório.
no php.ini
arquivo, você pode encontrar a seguinte linha:
;extension=php_pdo_pgsql.dll
Se você vir a vírgula( ;
) colocada no início da linha, significa que a linha está comentada e o driver do banco de dados não está habilitado.
Para habilitar o driver, você precisa descomentar a linha removendo a vírgula ( ;
) assim:
extension=php_pdo_pgsql.dll
Depois disso, você precisa reiniciar o servidor web para aplicar a alteração.
Nome da fonte de dados PostgreSQL
O nome da fonte de dados ou DSN contém parâmetros de banco de dados que permitem acesso a um sistema de banco de dados. O nome da fonte de dados do PostgreSQL consiste nos seguintes parâmetros:
- pgsql: é o prefixo DNS.
- host: o host do servidor onde o PostgreSQL é executado.
- porta: a porta que o PostgreSQL escuta. A porta padrão do PostgreSQL é
5432
. - dbname: o nome do banco de dados ao qual você deseja se conectar.
- E outros parâmetros.
O seguinte mostra um DSN que se conecta ao dvdrental
banco de dados no PostgreSQL Server local, porta 5432:
pgsql:host=localhost;port=5432;dbname=dvdrental;
Conectando-se ao PostgreSQL
O seguinte ilustra como se conectar ao dvdrental
banco de dados no servidor de banco de dados PostgreSQL:
<?php
require_once 'config.php';
try {
$dsn = "pgsql:host=$host;port=5432;dbname=$db;";
// make a database connection
$pdo = new PDO($dsn, $user, $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
if ($pdo) {
echo "Connected to the $db database successfully!";
}
} catch (PDOException $e) {
die($e->getMessage());
} finally {
if ($pdo) {
$pdo = null;
}
}
Linguagem de código: HTML, XML ( xml )
Como funciona o roteiro.
- Primeiro, faça uma nova conexão com o banco de dados PostgreSQL criando uma nova instância da classe PDO.
- Segundo, mostre uma mensagem se a conexão com o banco de dados for estabelecida com sucesso; caso contrário, mostre uma mensagem de erro.
A opção a seguir instrui o PDO a definir um código de erro e lançar uma exceção se ocorrer um erro:
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
Linguagem de código: PHP ( php )
O PDO possui três opções de tratamento de exceções:
PDO::ERROR_SILENT
– PDO define um código de erro para inspeção usando os métodosPDO::errorCode()
ePDO::errorInfo()
. EstePDO::ERROR_SILENT
é o modo padrão.PDO::ERRMODE_WARNING
– Além de definir o código de erro, o PDO emitirá umaE_WARNING
mensagem.PDO::ERRMODE_EXCEPTION
– Além de definir o código de erro, o PDO irá gerar um arquivoPDOException
.
Observe que o PHP fecha automaticamente a conexão com o banco de dados quando o script termina. Se quiser fechar explicitamente a conexão com o banco de dados, você pode definir a instância do PDO como nula:
<?php
$pdo = null;
Linguagem de código: HTML, XML ( xml )
O connect.php
script a seguir define uma connect()
função que faz uma conexão com o banco de dados PostgreSQL e retorna uma instância da classe PDO:
<?php
require_once 'config.php';
function connect(string $host, string $db, string $user, string $password): PDO
{
try {
$dsn = "pgsql:host=$host;port=5432;dbname=$db;";
// make a database connection
return new PDO(
$dsn,
$user,
$password,
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);
} catch (PDOException $e) {
die($e->getMessage());
}
}
return connect($host, $db, $user, $password);
Linguagem de código: HTML, XML ( xml )
Para usar isso connect.php
em um script, você usa a require
construção da seguinte maneira:
<?php
$pdo = require 'connect.php';
// start working with the database
Linguagem de código: HTML, XML ( xml )
Resumo
- Habilite a extensão PostgreSQL no
php.ini
arquivo removendo o ponto e vírgula (;
) da linhaextension=php_pdo_pgsql.dll
- Crie uma nova instância do PDO passando o nome da fonte de dados (DSN) ao seu construtor para fazer uma conexão com o servidor de banco de dados PostgreSQL.