Vous êtes sur la page 1sur 2

<?

php
echo '<pre>';
# Dados de acesso do banco de dados
$sgbd = "mysql";
$server = "localhost";
$port = 3306;
$database = "teste";
$username = "root";
$password = "";
# DSN o nome da string que define uma conexo com uma fonte de dados.
# Se quiser saber mais sobre ela, se vire.
# O importante aqui saber que o MySQL usa isso.
# Basicamente, ela assim:
# mysql:host=localhost;dbname=database_name
$dsn = $sgbd . ':host=' . $server . ';dbname=' . $database;
# Eis o construtor do PDO.
# Voc deve passar a DSN, usurio e senha.
# Caso apresente algum erro, visualize no bloco ''
try{
$pdo = new PDO($dsn, $username, $password);
} catch(PDOException $e){
print_r($e);
}
############# SELECT #############
$query = "SELECT * FROM clientes";
# Existem outras formas de fazer um select, mas vou apresentar a mais simple
s.
$rs = $pdo->query($query);

# Lembrando que, para verificar se houve algum erro, use o mtodo errorInfo().
# Este mtodo retorna um array com os seguintes ndices:
# [0] -> Cdigo do erro (SQLSTATE, definido pelo ANSI SQL)
# [1] -> Cdigo de erro do drive
# [2] -> String com erro
# Portanto, fica a seu critrio a maneira de tratar o erro.
print_r($pdo->errorInfo());
# Assim como o mysql_query, voc pode usar o fetch pra percorrer os dados
while($output = $rs->fetch())
print_r($output);
# Para utilizar um array associativo ou numrico, basta usar as constantes:
# PDO::FETCH_NUM ou PDO::FETCH_ASSOC no mtodo fetch()
while($output = $rs->fetch(PDO::FETCH_ASSOC))
print_r($output);
# Uma mtodo que eu gosto bastante o fetchAll(), que faz o fetch de uma vez
# s e retorna um array pra voc com todos os dados
$output = $rs->fetchAll(PDO::FETCH_ASSOC);
print_r($output);
# Sendo assim, voc pode consultar o nmero de registros, por exemplo, assim:
echo count($output);
############# INSERT #############

# Aqui entra um mtodo legal chamado prepare(), onde ele "trata" sua query ant
es
# de envi-la ao banco. Assim, voc se previne contra SQLi
# Os valores estaro diferentes, pois vamos pass-los para o objeto mais adiante
.
$query = 'INSERT INTO clientes (nome, cpf) VALUES (:nome, :cpf)';
$stmt = $pdo->prepare($query);
# Aqui passamos os valores pela referncia :nome_do_campo
$stmt->bindValue(':nome', 'Felipe Barros');
$stmt->bindValue(':cpf', '111.111.111-11');
# Depois que passarmos os valores, executamos
$stmt->execute();
# OBS: Tente inserir isso, por exemplo:
# DI\'EGO
# Depois veja no banco. Ele escapa o caracter sozinho ;)
############# DELETE #############
# Praticamente igual ao INSERT, s mudando a query.
$query = 'DELETE FROM clientes WHERE id = :id';
$stmt = $pdo->prepare($query);
$stmt->bindValue(':id', 3);
$stmt->execute();
# Um mtodo interessante o exec(), que serve para executar rapidamente uma que
ry.
# Ele retorna o nmero de linhas afetadas. Eu costumo us-lo para deletar, mas v
oc
# pode usar em outras querys
$count = $pdo->exec('DELETE FROM clientes WHERE id = 1');
echo $count . ' registro(s) excludo(s)';

############# UPDATE #############
# Mesma coisa, s muda a query.
$query = 'UPDATE clientes SET nome = :nome_novo WHERE nome = :nome_antigo';
$stmt = $pdo->prepare($query);
$stmt->bindValue(':nome_novo', 'Artur Marzano');
$stmt->bindValue(':nome_antigo', 'Kazumi');
$stmt->execute();
?>

Vous aimerez peut-être aussi