PDO – Resumão

Um resumão de como se usa a função, completando o post PDO, uma forma mais amigável de brincar com dados:

Conectar no banco de dados

$banco = new PDO('mysql:host=localhost;dbname=nome_do_banco', 'username','password');

Inserir um dado no banco

$novo_cliente = array(
    'nome'=>'José',
    'departamento'=>'TI',
    'unidade'=>'Paulista'
);
$banco->prepare('INSERT INTO clientes (nome,departamento,unidade) VALUES (:nome,:departamento,:unidade)')->execute($novo_cliente);

Retornar uma linha do banco

$query = $banco->query('SELECT * FROM clientes WHERE id = 1');
$query->execute();
$clientes = $query->fetch();

Retornar várias linhas do banco

$query = $banco->query('SELECT * FROM clientes');
$query->execute;
$todos_os_clientes = $query->fetchAll();

Retornar várias linhas com várias condições

$filtros = array(
     'nome'=>'João',
     'departamento'=>'TI',
     'unidade'=>'Jabaquara',
);
$consulta = $banco->query('SELECT * FROM clientes WHERE nome = :nome AND departamento = :departamento AND unidade = :unidade')
$clientes_pelo_filtro = $consulta->execute($filtros);

Atualizar dados

$title = 'PHP Pattern';
$author = 'Imanda';
$id = 3;
$query = $banco->prepare("UPDATE books SET title=?, author=? WHERE id=?");
$query->execute(array($title,$author,$id));

Fonte

Anúncios

PDO, uma forma mais amigável de brincar com dados

Recentemente descobri uma forma simples, fácil e prática para realizar querys no BD. Se chama PDO.

Vamos supor que temos um banco de dados de uma escola.
Nessa BD existe a tabela aluno com os campos:

  • Código – cod
  • Nome – nome
  • Turma – turma

Para conetar nesse banco com o PDO ficaria nessa forma:

<?php
	$banco = new PDO('mysql:host=localhost;dbname=nome_do_banco', 'username','password');
?>

Viu? Muito mais fácil.

Agora que já conseguimos conectar, vamos inserir um aluno na tabela ‘aluno’:

<?php
	# Array com as informações a serem inseridas no BD.
	$dados_aluno = array(
							'nome'=>'Luis Alberto',
							'turma'=>'1º ano');

	# Inserção dos dados no BD.
    # Os campos :alguma_coisa se referem aos indices acima como nome e turma.
	$banco->prepare('INSERT INTO aluno (nome,turma) VALUES (:nome,:turma)')->execute($dados_aluno);
?>

Depois de inserir os dados o legal é ver o resultado:

<?php
	# Query com a seleção dos dados
	$dados_do_aluno = $banco->query('SELECT * FROM aluno WHERE cod = 1')->fetch();

	# Imprime os dados obtidos
	var_dump($dados_do_aluno);
?>

Gostei, agora eu quero inserir vários alunos ao mesmo tempo:

<?php
	# Array com as informações a serem inseridas no BD.
	$varios_alunos = array(
		0 => array(
			'nome'=>'Nina',
			'turma'=>'1º ano'),
		1 => array(
			'nome'=>'Lilica',
			'turma'=>'1º ano')
	);

	# Prepara a query para inserir os dados no BD.
	# Os campos :alguma_coisa se referem aos indices acima como nome e turma.
	$inserir = $banco->prepare('INSERT INTO aluno (nome,turma) VALUES (:nome,:turma)');

	# Realiza o loop para inserir os valores do array na query acima.
	foreach ($varios_alunos as $cliente){
		$inserir->execute($cliente);
	}
?>

Agora que eu já inseri vários dados, gostaria de ver todos os dados inseridos:

<?php
	# Retorna os dados dos alunos inseridos até o momento
	$todos_os_alunos = $banco->query('SELECT * FROM aluno')->fetchAll();

	# Imprime os dados obtidos
	var_dump($dados_do_aluno);
?>

Xiii, errei uma informação. A Lilica estuda no segundo ano:

<?php
	# Array com as informações a serem atualizadas no BD.
	$dados_aluno = array(
						'turma'=>'2º ano',
						'cod'=>'2');

	# Realiza a atualização
    # Os campos :alguma_coisa se referem aos indices acima como nome e turma.
	$consulta = $banco->prepare('UPDATE aluno SET turma=:turma WHERE cod=:cod"')->execute($novo_aluno);
?>

Agora, gostaria de ver todos os alunos do 1º ano:

<?php
	# Array com as informações a serem pesquisadas no BD.
	$dados_aluno = array(
						'turma'=>'1º ano');

	# Realiza a seleção
	$consulta = $banco->query('SELECT * FROM aluno WHERE turma=:turma')->execute($dados_aluno);
?>

Maiores informações: