1. Home
  2. Hospedagem de Sites
  3. Tudo sobre o PHP Data Object PDO – Hospedagem de Sites

Tudo sobre o PHP Data Object PDO – Hospedagem de Sites

Informação!

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.
<?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.
<?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
<?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>";
}
 
?>
Observação!

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.

Conheça!

Aproveite e conheça outros produtos da Locaweb, como o Clic Lead, clique aqui e saiba mais!

Este artigo foi útil ?

Artigos relacionados