1. Home
  2. Hospedagem de Sites
  3. PHP Data Object (PDO) – Hospedagem de Sites

PHP Data Object (PDO) – Hospedagem de Sites

PDO(PHP Data Objects) é um módulo de PHP montado sob o paradigma Orientado a Objetos, cujo objetivo é prover uma padronização da forma com que PHP se comunica com um banco de dados relacional. Este módulo surgiu a partir da versão 5 de PHP. PDO, portanto, é uma interface que define um conjunto de classes e a assinatura dos métodos de comunicação com uma base de dados.

Por que usar PDO

Antes da chegada do PDO, a linguagem PHP oferecia suporte à comunicação com diferentes modelos de SGBD através de módulos específicos. A maioria deles provia uma biblioteca de funções e utilizava um resource para representar a conexão e outro para representar um resultset (o resultado de uma consulta). As operações eram feitas sobre as variáveis de resource.

Cada driver implementava suas operações conforme imaginavam ser mais adequados. Embora alguns deles tivessem um funcionamento semelhante, a ordem dos parâmetros nem sempre era a mesma e podia causar uma certa confusão entre programadores.

Como conectar a um banco MySQL usando PDO

  • Testando a conexão
 <?php
  $banco = new PDO('mysql:host=localhost;dbname=nome_do_banco', 'username','password')or print (mysql_error());
  print "Conexão Efetuada com sucesso!";
  ?>
  • Incluir dados
<?php
  $banco = new PDO('mysql:host=localhost;dbname=nome_do_banco', 'username','password');
  $novo_cliente = array('nome'=>'José','departamento'=>'TI','unidade'=>'Paulista');
  $banco->prepare('INSERT INTO clientes (nome,departamento,unidade) VALUES (:nome,:departamento,:unidade)')->execute($novo_cliente);
  ?>

Pesquisar dados em base MySQL utilizando querys simples e stored procedures

Neste exemplo, é possível efetuar pesquisas em bases MySQL utilizando querys e stored procedures. Lembrando que para evitar conflitos, teste sua procedure antes de implementá-la em sua aplicação.

  • Arquivo: ProcedurePDO.php
<?php
 
//Dados de acesso
$host = "Nome_do_Host";
$dbn  = "Nome_da_Base";
$user = "Nome_do_Usuário";
$pass = "Senha_da_Base";
 
$tabela = "Nome_da_Tabela";
 
try
{
	//Conectar
	$ligacao = new PDO("mysql:dbname=$dbn; host=$host", $user, $pass);
	$ligacao->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
	//Em caso de pesquisas, via procedures
	//$pesq = "";
	//$sql = "CALL Nome_da_procedure()";
 
	//Em caso de querys
	$pesq = "Nome_do_Campo";
	$sql = "SELECT * FROM $tabela WHERE nome= :nome_param";
 
	$resultados = $ligacao->prepare($sql);
 
	//Definição de parâmetros
	$resultados->bindParam(":nome_param", $pesq, PDO::PARAM_STR);
	$resultados->execute();
 
	echo'<p>'.$sql.'</p><hr>';
 
	foreach($resultados as $linha)
	{
		echo '<p>';
		//Nome do campo na tabela pesquisada
		echo $linha["Nome_da_Coluna"];
		echo '</p>';
	}
 
	echo '<hr><p>Resultados: '.$resultados->rowCount().'</p>';
 
	//Desconectar
	$ligacao = null;
}
catch(PDOException $erro)
{
	echo $erro->getMessage();
}
 
?>

Conectar um banco SQL Server usando PDO

Windows

Este exemplo funciona na versão 5.2 do PHP. Para utilização em servidores Windows 2008, há de alterar a versão do php via web.config tendo em vista que a versão padrão em windows 2008 é a PHP 5.3.

  • Arquivo: PDO_SQLserver.php
<?php
try {
    $hostname = "sqlserver01.bancodedados.com";
    $dbname = "nomebanco";
    $username = "nomebanco";
    $pw = "senha";
    $pdo = new PDO ("mssql:host=$hostname;dbname=$dbname","$username","$pw");
  } catch (PDOException $e) {
    echo "Erro de Conexão " . $e->getMessage() . "\n";
    exit;
  }
      $query = $pdo->prepare("select Coluna FROM nome_tabela");
      $query->execute();
 
      for($i=0; $row = $query->fetch(); $i++){
        echo $i." - ".$row['Coluna']."<br/>";
      }
 
      unset($pdo); 
      unset($query);
?>
Linux
  • Arquivo: PDO_SQLserver.php
<?php
try {
    $hostname = "sqlserver01.bancodedados.com";
    $dbname = "nomebanco";
    $username = "nomebanco";
    $pw = "senha";
    $pdo = new PDO ("dblib:host=$hostname;dbname=$dbname","$username","$pw");
  } catch (PDOException $e) {
    echo "Erro de Conexão " . $e->getMessage() . "\n";
    exit;
  }
      $query = $pdo->prepare("select Coluna FROM nome_tabela");
      $query->execute();
 
      for($i=0; $row = $query->fetch(); $i++){
        echo $i." - ".$row['Coluna']."<br/>";
      }
 
      unset($pdo); 
      unset($query);
?>

Como conectar a um banco SQLite3 via PDO

Os seguintes passos demonstram como se conectar a um banco SQLite3, como criar tabelas, inserir dados e visualizar dados de uma tabela via PDO.

  • Conectar à base
<?php
//Atribui um novo objeto com o banco criado anteriormente
//Supondo que o arquivo do banco de dados (banco.db) esteja ou será criado no mesmo diretório que o do php; 
//mas pode indicar um outro diretório também. 
//Ex: $db = new PDO("sqlite:~/public_hmtl/banco.db"); - conforme sua necessidade
 
$db = new PDO("sqlite:banco.db") or die("Erro ao abrir a base");
 
?>
  • Criar tabelas
<?php
$db = new PDO("sqlite:banco.db") or die("Erro ao abrir a base");
 
//cria a tabela
$sqlC = "CREATE TABLE suporte ( id INTEGER PRIMARY KEY, nome TEXT)";
$db->exec($sqlC);
 
?>
  • Inserir dados em uma tabela
<?php
 
$db = new PDO("sqlite:banco.db") or die("Erro ao abrir a base");
 
//insere os dados
$sqlI = "INSERT INTO suporte (id, nome) VALUES (NULL, 'Arielton Santos')";
$stmt = $db->exec($sqlI);
 
?>
  • Visualizar dados de uma tabela
<?php
 
$db = new PDO("sqlite:banco.db") or die("Erro ao abrir a base");
 
//visualiza
foreach ($db->query("SELECT id, nome FROM suporte") as $row) {
print_r($row);
echo "<br>";
}
 
?>

O código mencionado acima é somente um exemplo. Caso haja dúvidas quanto sua utilização, sugerimos que verifique juntamente a um desenvolvedor de sua confiança.

Aproveite e conheça outros produtos da Locaweb, como o Hospedagem de Sites, clique aqui e saiba mais!

Atualizado em 5 de agosto de 2019

Este artigo foi útil ?

Artigos relacionados