1 de dez. de 2012

Curso PDO [Aula 04: Cadastrando Dados com PDO]

Curso de PDO
Nesta aula iremos aprender a fazer cadastros com o PDO.
Primeiramente veremos um exemplo utilizando o modo primitivo do php.


CADASTRANDO SEM UTILIZAR PDO
< ?php
include_once("conexao.php");/*Inclui arquivo de conexao com o bd*/
$nome = "Carlos";
$sobrenome = "Alberto";

$sql = "INSERT INTO alunos (nome,sobrenome) VALUES ('$nome','$sobrenome')";
$query = mysql_query($sql);

if($query){
echo "Aluno cadastrado com sucesso!";
}else{
echo "Erro ao cadastrar aluno.";
}
?>

Vejam que o cadastro do primitivo fica totalmente vulnerável.
Veja agora, o exemplo acima utilizando PDO.

CADASTRANDO UTILIZANDO PDO
< ?php
include_once("conexao.php");
$nome = "Carlos";
$sobrenome = "Alberto";

try{
$cadastrar = $conexao->prepare("INSERT INTO alunos (nome,sobrenome)
VALUES (:nome,:sobrenome)";
$cadastrar->bindValue(":nome",$nome);
$cadastrar->bindValue(":sobrenome",$sobrenome);
$cadastrar->execute;
if($cadastrar->rowCount() > 0){
echo "Aluno cadastrado com sucesso!";
}else{
echo "Erro ao cadastrar aluno.";
}
}catch(PDOException $error){
echo "Erro ao cadastrar aluno: ". $error->getMessage();
}
?>

Lembrando , que com a utilização do PDO , eu não precisei deixar o parâmetro dentro de aspas simples , como foi utilizado no modo primitivo.

Veja:
$cadastrar = $conexao->prepare("INSERT INTO alunos (nome,sobrenome)
VALUES (:nome,:sobrenome)";


Vimos também que utilizei uma condicional diferente , veja:
if($cadastrar->rowCount() > 0){
echo "Aluno cadastrado com sucesso!";
}else{
echo "Erro ao cadastrar aluno.";
}

Fica a pergunta: Mas o rowCount não funciona apenas para selecionar dados ?

Resposta: Não ! o rowCount , neste caso está com a função do antigo mysql_affected_rows, que retorna o número de linhas afetadas.
Em nosso caso , 1 cadastrado foi executado com sucesso , resultando então na mensagem “Aluno cadastrado com sucesso!”;

Lembrando que poderiamos também fazer nosso cadastro utilizando os pontos de interrogação.

Exemplo:
< ?php
include_once("conexao.php");
$nome = "Carlos";
$sobrenome = "Alberto";

try{
$cadastrar = $conexao->prepare("INSERT INTO alunos (nome,sobrenome)
VALUES (?,?)";
$cadastrar->bindValue(1,$nome);
$cadastrar->bindValue(2,$sobrenome);
$cadastrar->execute;
if($cadastrar->rowCount() > 0){
echo "Aluno cadastrado com sucesso!";
}else{
echo "Erro ao cadastrar aluno.";
}
}catch(PDOException $error){
echo "Erro ao cadastrar aluno: ". $error->getMessage();
}
?>


CADASTRANDO COM PDO UTILIZANDO ARRAY

< ?php
include_once("conexao.php");
$nome = "Carlos";
$sobrenome = "Alberto";

$dados = array(
'nome'=> $nome,
'sobrenome'=> $sobrenome
);

try{
$cadastrar = $conexao->prepare("INSERT INTO alunos (nome,sobrenome)
VALUES (:nome,:sobrenome)";
foreach($dados as $indice => $valor):
$cadastrar->bindValue(":$indice",$valor);
endforeach;
$cadastrar->execute;
if($cadastrar->rowCount() > 0){
echo "Aluno cadastrado com sucesso!";
}else{
echo "Erro ao cadastrar aluno.";
}
}catch(PDOException $error){
echo "Erro ao cadastrar aluno: ". $error->getMessage();
}
?>


CADASTRANDO COM PDO UTILIZANDO ARRAY E INTERROGAÇÃO

< ?php
include_once("conexao.php");
$nome = "Carlos";
$sobrenome = "Alberto";

$dados = array(
1=> $nome,
2=> $sobrenome
);

try{
$cadastrar = $conexao->prepare("INSERT INTO alunos (nome,sobrenome)
VALUES (?,?)";
foreach($dados as $indice => $valor):
$cadastrar->bindValue($indice,$valor);
endforeach;
$cadastrar->execute;
if($cadastrar->rowCount() > 0){
echo "Aluno cadastrado com sucesso!";
}else{
echo "Erro ao cadastrar aluno.";
}
}catch(PDOException $error){
echo "Erro ao cadastrar aluno: ". $error->getMessage();
}
?>


Até a Próxima!

2 comentários: