Curso Completo de PHP_PDO
-
Upload
kalazansalan -
Category
Documents
-
view
633 -
download
15
Transcript of Curso Completo de PHP_PDO
Curso Completo de PHP – PDOSejam todos bem vindos (as) ao curso de PDO – PHP Data ObjectsRequisito: Para começar o curso de PDO, aconselho que veja antes, todas as aulas do curso de HTML, php, Banco de dados MYSQL.Título das Aulas + links abaixo:Curso PDO – Aula 01 – IntroduçãoCurso PDO – Aula 02 – Conexão com PDOCurso PDO – Aula 03 – Selecionando Dados com PDOCurso PDO – Aula 04 – Cadastrando Dados com PDOCurso PDO – Aula 05 – Deletando Dados com PDOCurso PDO – Aula 06 – Atualizando Dados com PDO
Aula 01 – IntroduçãoHoje iremos começar nosso curso exclusivo de PDO (PHP Data Objects). O PDO vem dominando o mercado no mundo dos programadores PHP, e por este motivo não pode ficar para trás correto?Neste curso iremos aprender a fazer um CRUD ( create | read | update | delete – criar | ler | atualizar | deletar) completo com PDO, e mais. Iremos também fazer comparações com o modo primitivo do PHP, assim todos nós iremos atender as diferenças entre ambos.
Qual a vantagem do uso do PDO?Imagine que você criou um sistema utilizando o modo primitivo do php, e o tipo de banco de dados utilizado foi o MYSQL.Depois de muito tempo, seu cliente, fala pra você que o banco de dados agora será do tipo ORACLE.Particularmente, você teria de mudar diversas páginas correto?Com o PDO já é diferente, pois o próprio trabalha com driver’s de banco de dados, ou seja, para solucionar o problema de seu cliente utilizando PDO, bastaria modificar apenas o arquivo de conexão com o banco de dados, informando o driver desejado.Com PDO, podemos ficar mais tranquilos co-relação a vulnerabilidades , pois com a utilização do próprio , poderemos evitar situações de SQL Injection.Está gostando? Continue acompanhando o curso, pois este é apenas o inicio.Gostaria de comprar um curso online conosco, e não conhece nosso campus virtual? Visite: http://www.escolacompleta.com/campus Continuação… vamos a uma rápida introdução do PDO.
Introdução
O PHP Data Objects ( PDO ) define uma interface leve em PHP. Cada driver de banco de dados que implementa a interface PDO pode expor dados de recursos específicos. Note que você não pode executar quaisquer funções de banco de dados usando a extensão PDO, por si só, você deve usar um banco de dados específico do driver PDO para acessar um servidor de banco de dados.PDO fornece um acesso de dados abstrato, o que significa que, independentemente de qual banco de dados você está usando, você usa as mesmas funções para emitir consultas e buscar dados (CRUD).
Aula 02 – Conexão com PDONesta aula iremos aprender a criar uma conexão com o banco de dados utilizando o PDO, lembrando que faremos comparações do modo primitivo e o modo PDO.De fato uma conexão primitiva sem a utilização do PDO, ficaria como o exemplo abaixo:
<?php
$host = "localhost";
$user = "root"; $pass = "";
$bd = "banco_teste";
$conexao = mysql_connect($host,$user,$pass) OR DIE ("Erro ao conectar com o banco de dados: ".mysql_error());
if($conexao){ mysql_select_db($bd) OR DIE ("Erro ao selecionar banco de dados: ".mysql_error());
}else{}
?>
De certa forma o modo primitivo é menos complexo, e mais rápido de ser desenvolvido, contudo existem desvantagens.Uma delas é a vulnerabilidade;Outra questão é o famoso código macarrão;E mais uma é a questão de tempo longo para mudanças de tipos de banco de dados.Veja agora como criar sua conexão com banco de dados utilizando o PDO, baseando-se no exemplo acima.<?php
$host = "localhost";
$user = "root"; $pass = "";
$bd = "banco_teste"; /*O que o PDO pede na conexao?
ex: PDO($dsn,$user,$pass);
mais o que é dsn ?
dsn = tipo_do_banco:host='seu_host';dbname='nome_do_seu_banco';
*/
$dsn = "mysql:host=".$host.";dbname=".$bd; try{
$conexao = new PDO($dsn,$user,$pass); $conexao->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $conexao; }catch(PDOException $error){
echo "Erro ao conectar com o banco de dados: ".$error->getMessage();
}
?>
O que o PDO pede de diferente na conexão?ex: PDO($dsn,$user,$pass);
Como funciona a estrutura do dsn ?
A estrutura do dsn funciona da seguinte forma:ex: $dsn = “tipo_do_banco:host=seu_host;dbname=nome_do_seu_banco”;resultado: $dsn = “mysql:host=localhost;dbname=banco_teste”;Até ai tudo bem… mas o que quer dizer está linha:$conexao->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
setAttribute – Define um atributo na declaração. Para ver a lista de atributos clique aqui.PDO::ATTR_ERRMODE – relatório de erros.PDO::ERRMODE_EXCEPTION - Atributo filho do atributo ATTR_ERRMODE , este representa um erro gerado pelo PDO.
Endentendo os atributos
Quando você define um atributo no PDO, os próprios possuem valores padrões, e filhos únicos.A sintaxe para a utilização funciona da seguinte forma:setAttribute(atributo, filho_do_atributo);Para isso, veja a lista abaixo , que seta os atributos , e seus filhos alheios.
1. PDO::ATTR_CASE – nomes de colunas força para um caso específico. o Filhos do atributo PDO::ATTR_CASEo PDO::CASE_LOWER – Força nomes de coluna para minúsculas.o PDO::CASE_NATURAL – nomes de colunas deixar como retornados pelo
driver de banco de dados.o PDO::CASE_UPPER – nomes de colunas força para maiúsculas.
2. PDO:: ATTR_ERRMODE – relatório de erros. o Filhos do atributo PDO :: ATTR_ERRMODEo PDO::ERRMODE_SILENT – Basta definir códigos de erro.o PDO::ERRMODE_WARNING – Levante E_WARNING.o PDO::ERRMODE_EXCEPTION – Throw exceções.
3. PDO::ATTR_ORACLE_NULLS – (disponível com todos os drivers, e não apenas da Oracle): Conversão de strings nulas e vazias.
o Filhos do atributo PDO :: ATTR_ORACLE_NULLSo PDO::NULL_NATURAL – Não conversão.o PDO::NULL_EMPTY_STRING – string vazio é convertido para NULL .o PDO::NULL_TO_STRING – NULL é convertido para uma cadeia vazia.
Existem muitos atributos e seus alheios , para isso saiba mais no site do oficial do php clicando aqui.Agora que sabemos mais sobre os atributos devemos saber sobre está linha:}catch(PDOException $error){
O que é o PDOException?Ele representa um erro gerado pelo PDO. Desta forma estamos atribuindo o erro gerado pelo PDO à variável $error.Desta forma devemos apenas chamar a mensagem de error utilizando a variável $error
Observem que para mostrar a mensagem de error gerada, eu utilizei:$error->getMessage();
Mas o que é o getMessage()?getMessage() — Obtém a mensagem da exceção.
Aula 03 – Selecionando Dados com PDONesta aula iremos aprender a fazer a seleção, ou listagem de dados com PDO. Lembrando que iremos fazer as comparações e observações devidas com o modo primitivo do PHP.Primeiramente temos o primeiro exemplo, onde iremos fazer a seleção dos dados utilizando o modo primitivo do php. Veja o exemplo abaixo:< ?php include_once("conexao.php"); /*incluindo arquivo de conexao da aula passada*/
$sql = "SELECT * FROM alunos"; $query = mysql_query($sql);
if(mysql_num_rows($query) > 0){
while($linha_alunos = mysql_fetch_array($query)){ echo $linha_alunos['nome_aluno']."<br />";
}
}else{}
?>
Simples não?Lembrando que fizemos a inclusão do arquivo de conexão da aula passada.Se você não visitou a aula passada clique aqui.Agora que você já sabe como funciona a seleção de dados utilizando o modo primitivo, iremos agora fazer o mesmo utilizando o PDO.Primeiramente iremos fazer uma seleção comum sem a utilização de condições (WHERE).
SELEÇÃO COMUM COM PDO< ?php
include_once("conexao.php");
function listar_alunos(){ try{
$listar = $conexao->query("SELECT * FROM alunos"); $listar->execute();
if($listar->rowCount() > 0){
return $listar->fetchAll(PDO::FETCH_ASSOC);
}else{
echo "Não existem alunos cadastrados na base."; }
}catch(PDOException $error){
echo "Error ao listar alunos: ".$error->getMessage();
}
}
$alunos = listar_alunos();
foreach($alunos as $aluno): echo $aluno['nome_aluno']."<br />";
endforeach;
?>
Você poderia também, utilizar o FETCH_OBJ ao invés de FETCH_ASSOC , contudo nosso foreach ficaria desta forma:foreach($alunos as $aluno): echo $aluno->nome_aluno."<br />";
endforeach;
O resultado de todo o código utilizando FETCH_OBJ seria:< ?php
include_once("conexao.php");//inclusao do arquivo de conexao da aula passada
function listar_alunos(){ try{
$listar = $conexao->query("SELECT * FROM alunos"); $listar->execute();
if($listar->rowCount() > 0){
return $listar->fetchAll(PDO::FETCH_OBJ); }else{
echo "Não existem alunos cadastrados na base."; }
}catch(PDOException $error){
echo "Error ao listar alunos: ".$error->getMessage();
}
}
$alunos = listar_alunos();
foreach($alunos as $aluno): echo $aluno->nome_aluno."<br />";
endforeach;
?>
<h3>SELEÇÃO COMPOSTA COM PDO</h3>
A seleção composta já é diferente, pois iremos utilizar <strong>condições</strong> , e devemos utilizar o <strong>prepare</strong> do PDO.O método <strong>query</strong> é utilizado apenas para seleções comuns que não envolvem condições (WHERE).
Exemplo de seleção composta:
<?php include_once("conexao.php");//inclusao do arquivo de conexao da aula passada
function listar_alunos_com_condicao(){ try{
$idade = 15;/*aqui defini a idade desejada para condicao*/ $listar = $conexao->prepare("SELECT * FROM alunos WHERE idade = :idade");
$listar->bindValue(":idade",$idade);/*O bindValue protege os dados que você está passando , seta o valor para o parametro.*/ $listar->execute();
if($listar->rowCount() > 0){
return $listar->fetch(PDO::FETCH_ASSOC); }else{
echo "Não existem alunos cadastrados na base."; }
}catch(PDOException $error){
echo "Error ao listar alunos: ".$error->getMessage();
}
}
$alunos = listar_alunos_com_condicao();
foreach($alunos as $aluno): echo $aluno['nome_aluno']."<br />";
endforeach;
?>
Observem que no exemplo acima, eu não utilizei o fetchAll, mas sim apenas o fetch, pois estou querendo retornar apenas um valor específico informado em minha “condição”.Lembrando também que ao invés de utilizar bindValue, podemos utilizar também bindParam, que irá retornar o mesmo valor , contudo você poderá também especificar o tipo do parâmetro ( type ) passado e o tamanho ( lenght ) .Exemplo:$listar->bindParam(":idade",$idade,PDO::PARAM_INT,3);
Desta forma estou especificando que o valor passado é do tipo inteiro (PARAM_INT), e o tamanho é 3. Ou seja, não existe pessoa com idade maior que 3 digitos correto? (Por favor, não inclua as múmias neste rolo).
E para tipos strings? Como seria?
$listar->bindParam(":aluno_nome",$aluno_nome,PDO::PARAM_STR, 255);
Já no exemplo acima, estou informando que o parâmetro aluno_nome é do tipo string(PARAM_STR) e o tamanho máximo é de 255 caracteres.Caso queiram saber mais sobre bindParam’s clique aquiAgora, irei mostrar uma situação que muitos alunos têm dúvida. O famoso ponto de interrogação.Quando passamos parâmetros, podemos também utilizar o ponto de interrogação, e logo após a posição do índice que pretendemos atribuir o valor corrente. Exemplo:<?php
include_once("conexao.php");
function listar_alunos_com_condicao(){ try{
$idade = 15; $listar = $conexao->prepare("SELECT * FROM alunos WHERE idade = ?");
$listar->bindValue(1,$idade);
$listar->execute();
if($listar->rowCount() > 0){
return $listar->fetch(PDO::FETCH_ASSOC); }else{
echo "Não existem alunos cadastrados na base."; }
}catch(PDOException $error){
echo "Error ao listar alunos: ".$error->getMessage();
}
}
$alunos = listar_alunos_com_condicao();
foreach($alunos as $aluno): echo $aluno['nome_aluno']."<br />";
endforeach;
?>
Vejam que as linhas modificadas foram as listadas abaixo:$listar = $conexao->prepare("SELECT * FROM alunos WHERE idade = ?");
$listar->bindValue(1,$idade);/*O bindvalue protege os
Contudo, fica a pergunta. E se eu quisesse passar dois parâmetros na condição? Como ficaria?
Veja o exemplo abaixo:<?php
include_once("conexao.php");
function listar_alunos_com_condicao(){ try{
$idade = 15; $sobrenome = "Alberto";
$listar = $conexao->prepare("SELECT * FROM alunos WHERE idade = ? AND sobrenome = ?"); $listar->bindValue(1,$idade);
$listar->bindValue(2,$sobrenome);
$listar->execute();
if($listar->rowCount() > 0){
return $listar->fetch(PDO::FETCH_ASSOC); }else{
echo "Não existem alunos cadastrados na base."; }
}catch(PDOException $error){
echo "Error ao listar alunos: ".$error->getMessage();
}
}
$alunos = listar_alunos_com_condicao();
foreach($alunos as $aluno): echo $aluno['nome_aluno']."<br />";
endforeach;
?>
Concluindo nosso exemplo, vejam as linhas alteradas.$sobrenome = "Alberto";$listar = $conexao->prepare("SELECT * FROM alunos WHERE idade = ? AND sobrenome = ?");
$listar->bindValue(1,$idade);/*O bindvalue protege os dados que você está passando.*/$listar->bindValue(2,$sobrenome);
Viram como é simples fazer seleção com o PDO?
Aula 04 – Cadastrando Dados com PDONesta 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 poderíamos 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();
}
?>
Simples, fácil e seguro utilizar o PDO para fazer nosso INSERT né?
Aula 05 – Deletando Dados com PDONa aula de hoje iremos aprender a deletar dados do banco de dados utilizando o super PDO =)Primeiramente, como toda aula, vejamos um exemplo utilizando o modo primitivo, ou simples do php, como muitos dizem.
DELETANDO SEM A UTILIZAÇÃO DO PDO
<?php include_once("conexao.php");
$matricula = $_GET['matricula']; $sql = "DELETE * FROM alunos WHERE matricula = '$matricula'";
$query = mysql_query($sql);
if($query){
echo "Aluno deletado com sucesso!";
}else{
echo "Não foi possível deletar o aluno.";
}
?>
Lembrou como era utilizado o modo primitivo do php ? Agora , veja o mesmo utilizando PDO.
DELETANDO UTILIZANDO O PDO
<?php include_once("conexao.php");
try{
$matricula = $_GET['matricula'];
$deletar = $conexao->prepare("DELETE * FROM alunos WHERE matricula = :matricula");
$deletar->bindValue(":matricula",$matricula);
$deletar->execute();
if($deletar->rowCount() > 0){
echo "Aluno deletado com sucesso!";
}else{
echo "Não foi possível deletar o aluno.";
}
}catch(PDOException $error){
echo "Error ao deletar aluno: ". $error->getMessage();}
?>
LEMBRANDO TAMBÉM, QUE PODERIAMOS UTILIZAR OS FAMOSOS PONTOS DE INTERROGAÇÃO PARA DELETAR.Exemplo:< ?php
include_once("conexao.php");
try{
$matricula = $_GET['matricula'];
$deletar = $conexao->prepare("DELETE * FROM alunos WHERE matricula = ?"); $deletar->bindValue(1,$matricula);
$deletar->execute();
if($deletar->rowCount() > 0){
echo "Aluno deletado com sucesso!";
}else{
echo "Não foi possível deletar o aluno.";
}
}catch(PDOException $error){
echo "Error ao deletar aluno: ". $error->getMessage();}
?>
Simples, e descomplicado.
Aula 06 – Atualizando Dados com PDOHoje iremos então, finalizar nosso CRUD (create – read- update – delete = criar – ler – atualizar – deletar).
Na aula de hoje aprenderemos a atualizar os dados utilizando o PDO. Mantendo a rotina exposta em todas as aulas do curso, primeiramente irei mostrar o modo tradicional ou primitivo do php. Logo após, o mesmo exemplo utilizando o PDO.
ATUALIZANDO DADOS SEM UTILIZAR PDO
<?php include_once("conexao.php");/*Inclui arquivo de conexao com o bd*/
$matricula = $_POST['matricula']; $nome = $_POST['nome'];
$sobrenome = $_POST['sobrenome'];
$sql = "UPDATE alunos SET nome = '$nome',
sobrenome = '$sobrenome'
WHERE
matricula = '$matricula'
";
$query = mysql_query($sql);
if($query){
echo "Aluno atualizado com sucesso!";
}else{
echo "Erro ao atualizar aluno.";
}
?>
ATUALIZANDO DADOS UTILIZANDO PDO
<?php include_once("conexao.php");/*Inclui arquivo de conexao com o bd*/
$matricula = $_POST['matricula']; $nome = $_POST['nome'];
$sobrenome = $_POST['sobrenome'];
$atualizar = $conexao->prepare("UPDATE alunos SET nome = :nome,
sobrenome = :sobrenome
WHERE
matricula = :matricula
");
$atualizar->bindValue(":nome",$nome);
$atualizar->bindValue(":sobrenome",$sobrenome);
$atualizar->bindValue(":matricula",$matricula);
$atualizar->execute;
if($atualizar->rowCount() > 0){
echo "Aluno atualizado com sucesso!"; }else{
echo "Erro ao atualizar aluno."; }
?>
PERGUNTA:PODERÍAMOS UTILIZAR OS PONTOS DE INTERROGAÇÃO ? SIM. VEJA:
<?php include_once("conexao.php");/*Inclui arquivo de conexao com o bd*/
$matricula = $_POST['matricula']; $nome = $_POST['nome'];
$sobrenome = $_POST['sobrenome'];
$atualizar = $conexao->prepare("UPDATE alunos SET nome = ?,
sobrenome = ?
WHERE
matricula = ?");
$atualizar->bindValue(1,$nome);
$atualizar->bindValue(2,$sobrenome);
$atualizar->bindValue(3,$matricula);
$atualizar->execute;
if($atualizar->rowCount() > 0){
echo "Aluno atualizado com sucesso!";
}else{
echo "Erro ao atualizar aluno.";
}
?>
Pergunta: Poderíamos utilizar arrays para fazer tal atualização? Seria ótimo para realizar múltiplas atualizações de dados correto?Resposta: Sim, podemos utilizar arrays. E, sim seria ótimo para manipulação múltipla de dados.
EXEMPLO UTILIZANDO ARRAY – SEM A UTILIZAÇÃO DOS PONTOS DE INTERROGAÇÃO.<?php
include_once("conexao.php");/*Inclui arquivo de conexao com o bd*/
$matricula = $_POST['matricula']; $nome = $_POST['nome'];
$sobrenome = $_POST['sobrenome'];
$dados = array( 'nome'=>$nome,
'sobrenome'=>$sobrenome,
'matricula'=>$matricula
);
$atualizar = $conexao->prepare("UPDATE alunos SET nome = :nome,
sobrenome = :sobrenome
WHERE
matricula = :matricula
");
foreach($dados as $indice => $valor): $atualizar->bindValue(":$indice",$valor);
endforeach;
$atualizar->execute;
if($atualizar->rowCount() > 0){
echo "Aluno atualizado com sucesso!";
}else{
echo "Erro ao atualizar aluno."; }
?>
EXEMPLO UTILIZANDO ARRAY – UTILIZANDO OS PONTOS DE INTERROGAÇÃO.<?php
include_once("conexao.php");/*Inclui arquivo de conexao com o bd*/
$matricula = $_POST['matricula']; $nome = $_POST['nome'];
$sobrenome = $_POST['sobrenome'];
$dados = array( 1=>$nome,
2=>$sobrenome,
3=>$matricula
);
$atualizar = $conexao->prepare("UPDATE alunos SET nome = ?,
sobrenome = ?
WHERE
matricula = ?");
foreach($dados as $indice => $valor):
$atualizar->bindValue($indice,$valor);
endforeach;
$atualizar->execute;
if($atualizar->rowCount() > 0){
echo "Aluno atualizado com sucesso!";
}else{
echo "Erro ao atualizar aluno.";
}
?>
Viram como é simples fazer atualizações utilizando o PDO?