Conectando-se ao PostgreSQL

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.iniarquivo.

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 postgrese senha postgresque pode acessar o dvdrentalbanco de dados no servidor de banco de dados local

O seguinte cria um novo arquivo de configuração de banco de dados chamado config.phpque armazena os parâmetros do banco de dados PostgreSQL:

<?php

$host= 'localhost';
$db = 'dvdrental';
$user = 'postgres';
$password = 'postgres'; // change to your passwordLinguagem de código:  HTML, XML  ( xml )

Para usar esses parâmetros, inclua o config.phparquivo no script que se conecta ao PostgreSQL usando a requireconstruçã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.iniarquivo. Normalmente, o php.iniarquivo está localizado no phpdiretório. Por exemplo, se você usar o XAMPP no Windows, poderá encontrar o php.iniarquivo no C:\xampp\phpdiretório.

no php.iniarquivo, 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 dvdrentalbanco 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 dvdrentalbanco 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étodos PDO::errorCode()e PDO::errorInfo(). Este PDO::ERROR_SILENTé o modo padrão.
  • PDO::ERRMODE_WARNING– Além de definir o código de erro, o PDO emitirá uma E_WARNING mensagem.
  • PDO::ERRMODE_EXCEPTION– Além de definir o código de erro, o PDO irá gerar um arquivo PDOException.

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.phpscript 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.phpem um script, você usa a requireconstrução da seguinte maneira:

<?php

$pdo = require 'connect.php';

// start working with the databaseLinguagem de código:  HTML, XML  ( xml )

Resumo

  • Habilite a extensão PostgreSQL no php.iniarquivo 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *