+15

Desmistificando o PDO - PHP Data Object

criado por Rubens Takiguti Ribeiro em 16/12/2009 12:38am
Outros benefícios

1 - Obtenção padronizada de erros ocorridos em consultas, através do método "errorInfo" e "errorCode" da classe PDO e PDOStatement.

2 - Suporte a inicialização e encerramento de transações de forma padronizada (esta funcionalidade depende do suporte do SGBD), através dos métodos "beginTransaction", "commit" e "rollBack".

3 - Suporte para trabalhar com handle de arquivos para realizar inserções ou consultas a grandes volumes de dados, para economizar memória. Isso acontece pois a própria classe PDO fica responsável por transmitir o arquivo "aos poucos", sem precisar carregá-lo inteiramente na memória, como seria feito da forma tradicional. Um handle de arquivo utiliza uma variável do tipo resource, que funciona como um "ponteiro" para o arquivo.

Comentários:

Mostrando 1 - 10 de 15 comentários
Muito bom o Post, me ajudou muito.
Para exibir os resultados do while basta

$stmt = $pdo->query('SELECT nome, login FROM usuarios');

// Percorrento um resultset com while
while ($obj = $stmt->fetchObject()) {
$obj->nome; //campo que deseja exibir
}

Abraço!
23/11/2011 11:30am (~2 meses atrás)

Olá, venho aqui recomendar, para quem se interessar o uso de uma classe PDO de conexão, a qual já venho utilizando. Possui um repositório no github para poder baixar e utilizar em suas aplicações, ou simplesmente acompanhar e/ou compartilhar.

Segue link: http://bitly.com/PDO4You

Sugestões ou críticas, sempre são bem vindas e ajudam a tornar esta classe ainda melhor para benefício de todos e assim seja até quando o PHP existir. =D

Abraços.
30/07/2011 10:15pm (~6 meses atrás)

Jairo disse:
Rubens, obrigado pela resposta. Pensei que dava pra fazer algo como isto, ou seja, selecionar quais colunas retornar da consulta, mas pelo jeito devo fazer isso de outra forma.

quando tento iterar o objeto PDOStatement aparece algo como:

array
'?' => string 'telefone' (length=8)
0 => string 'nome' (length=4)
1 => string 'endereco' (length=8)
2 => string 'telefone' (length=8)

26/03/2011 12:58pm (~10 meses atrás)

Jairo, na verdade se utiliza os pontos chave para valores variáveis, por exemplo, valores informados pelo usuário.

Prepared Statement inclui aspas quando o conteúdo é string, portanto, seria gerada uma SQL inválida, já que não se informa os campos desejados de um SELECT delimitados por aspas.

Correto:
SELECT nome FROM usuarios;

Errado:
SELECT 'nome' FROM usuarios;
23/03/2011 5:50pm (~10 meses atrás)

Jairo disse:
Muito bom artigo

Usando dessa forma:

$statement = $pdo->prepare('select ?,?,? from pessoa');
$columns = array('nome', 'endereco', 'telefone');
$statement->execute($columns);

// depois ler o resultado do objeto $statement

deveria funcionar ou existe um jeito de funcionar?


23/03/2011 4:46pm (~10 meses atrás)

Parabéns pelo artigo, é realmente motivador!
Obrigado!
31/08/2010 4:57pm (~1 ano atrás)

Trambulhao disse:
Bom artigo, parabéns

Será quem já tem alguém traduzindo no manual do PHP a parte do PDO?
22/03/2010 10:23pm (~1 ano atrás)

Parabéns pelo artigo. Muito importante.
10/03/2010 5:57pm (~1 ano atrás)

Nelson disse:
Parabéns pelo artigo Rubens, muito bem explicadiiinho, legal gostei mesmo.
18/02/2010 12:15am (~2 anos atrás)

Beowulf disse:
conecta.php
<?php
//conecta ao banco de dados
pg_connect( "host=localhost port=5432 dbname=post user=nome_usuario
password=senha_do_banco" ) or die ( "Nao consegui conectar ao PostgreSQL" );

delete.php
?>
<?php include "conection.php"; $sql = pg_exec("DELETE FROM ."$_GET['table_db']." WHERE coment comentario= =".$_GET['coment'].";"); pg_close();
echo "Foi mal aew só para teste,
Eu uso o Postgresql. Mas isso é aula
é meu primeiro post :D
abraços aew a todos e parabens pela aula já estou aprendendo muito"?>

Se quiser apagar este post, tranquilo
09/02/2010 11:26pm (~2 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)