Você está na página 1de 18

Curso Completo de PHP PDO

Sejam todos bem vindos (as) ao curso de PDO PHP Data Objects
Requisito: Para comear o curso de PDO, aconselho que veja antes, todas as aulas do curso de
HTML, php, Banco de dados MYSQL.
Ttulo das Aulas + links abaixo:
Curso PDO Aula 01 Introduo
Curso PDO Aula 02 Conexo com PDO
Curso PDO Aula 03 Selecionando Dados com PDO
Curso PDO Aula 04 Cadastrando Dados com PDO
Curso PDO Aula 05 Deletando Dados com PDO
Curso PDO Aula 06 Atualizando Dados com PDO

Aula 01 Introduo
Hoje iremos comear nosso curso exclusivo de PDO (PHP Data Objects).
O PDO vem dominando o mercado no mundo dos programadores PHP, e por este motivo no pode
ficar para trs correto?
Neste curso iremos aprender a fazer um CRUD ( create | read | update | delete criar | ler | atualizar |
deletar) completo com PDO, e mais. Iremos tambm fazer comparaes com o modo primitivo do
PHP, assim todos ns iremos atender as diferenas 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 pginas correto?
Com o PDO j diferente, pois o prprio trabalha com drivers de banco de dados, ou seja, para
solucionar o problema de seu cliente utilizando PDO, bastaria modificar apenas o arquivo de
conexo com o banco de dados, informando o driver desejado.
Com PDO, podemos ficar mais tranquilos co-relao a vulnerabilidades , pois com a utilizao do
prprio , poderemos evitar situaes de SQL Injection.
Est gostando? Continue acompanhando o curso, pois este apenas o inicio.
Gostaria de comprar um curso online conosco, e no conhece nosso campus virtual? Visite:
http://www.escolacompleta.com/campus
Continuao vamos a uma rpida introduo do PDO.
Introduo
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 especficos. Note que voc no pode
executar quaisquer funes de banco de dados usando a extenso PDO, por si s, voc deve usar um
banco de dados especfico 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 funes para emitir consultas e buscar dados (CRUD).

Aula 02 Conexo com PDO


Nesta aula iremos aprender a criar uma conexo com o banco de dados utilizando o PDO, lembrando
que faremos comparaes do modo primitivo e o modo PDO.
De fato uma conexo primitiva sem a utilizao 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 rpido de ser desenvolvido, contudo
existem desvantagens.
Uma delas a vulnerabilidade;
Outra questo o famoso cdigo macarro;
E mais uma a questo de tempo longo para mudanas de tipos de banco de dados.
Veja agora como criar sua conexo 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 conexo?


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 declarao. Para ver a lista de atributos clique aqui.
PDO::ATTR_ERRMODE relatrio 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 prprios possuem valores padres, e filhos nicos.
A sintaxe para a utilizao 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 fora para um caso especfico.
o Filhos do atributo PDO::ATTR_CASE
o PDO::CASE_LOWER Fora nomes de coluna para minsculas.
o PDO::CASE_NATURAL nomes de colunas deixar como retornados pelo
driver de banco de dados.
o PDO::CASE_UPPER nomes de colunas fora para maisculas.
2. PDO:: ATTR_ERRMODE relatrio de erros.
o Filhos do atributo PDO :: ATTR_ERRMODE
o PDO::ERRMODE_SILENT Basta definir cdigos de erro.
o PDO::ERRMODE_WARNING Levante E_WARNING.
o PDO::ERRMODE_EXCEPTION Throw excees.
3. PDO::ATTR_ORACLE_NULLS (disponvel com todos os drivers, e no apenas da
Oracle): Converso de strings nulas e vazias.
o Filhos do atributo PDO :: ATTR_ORACLE_NULLS
o PDO::NULL_NATURAL No converso.
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 varivel $error.
Desta forma devemos apenas chamar a mensagem de error utilizando a varivel $error
Observem que para mostrar a mensagem de error gerada, eu utilizei:
$error->getMessage();

Mas o que o getMessage()?


getMessage() Obtm a mensagem da exceo.

Aula 03 Selecionando Dados com PDO


Nesta aula iremos aprender a fazer a seleo, ou listagem de dados com PDO.
Lembrando que iremos fazer as comparaes e observaes devidas com o modo primitivo do PHP.
Primeiramente temos o primeiro exemplo, onde iremos fazer a seleo 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 no?
Lembrando que fizemos a incluso do arquivo de conexo da aula passada.
Se voc no visitou a aula passada clique aqui.
Agora que voc j sabe como funciona a seleo de dados utilizando o modo primitivo, iremos agora
fazer o mesmo utilizando o PDO.
Primeiramente iremos fazer uma seleo comum sem a utilizao de condies (WHERE).

SELEO 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 "No 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 tambm, utilizar o FETCH_OBJ ao invs de FETCH_ASSOC , contudo nosso foreach
ficaria desta forma:
foreach($alunos as $aluno):
echo $aluno->nome_aluno."<br />";

endforeach;

O resultado de todo o cdigo 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 "No 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>SELEO COMPOSTA COM PDO</h3>

A seleo composta j diferente, pois iremos utilizar


<strong>condies</strong> , e devemos utilizar o <strong>prepare</strong> do
PDO.
O mtodo <strong>query</strong> utilizado apenas para selees comuns que no
envolvem condies (WHERE).

Exemplo de seleo 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 "No 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 no utilizei o fetchAll, mas sim apenas o fetch, pois estou
querendo retornar apenas um valor especfico informado em minha condio.
Lembrando tambm que ao invs de utilizar bindValue, podemos utilizar tambm bindParam, que ir
retornar o mesmo valor , contudo voc poder tambm especificar o tipo do parmetro ( 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, no existe pessoa com idade maior que 3 digitos correto? (Por favor, no inclua as
mmias 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 parmetro aluno_nome do tipo


string(PARAM_STR) e o tamanho mximo de 255 caracteres.
Caso queiram saber mais sobre bindParams clique aqui
Agora, irei mostrar uma situao que muitos alunos tm dvida. O famoso ponto de interrogao.
Quando passamos parmetros, podemos tambm utilizar o ponto de interrogao, e logo aps a
posio 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 "No 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 parmetros na condio? 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 "No 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 seleo com o PDO?

Aula 04 Cadastrando Dados com 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 vulnervel.


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 utilizao do PDO, eu no precisei deixar o parmetro dentro de aspas
simples, como foi utilizado no modo primitivo.
Veja:
$cadastrar = $conexao->prepare("INSERT INTO alunos (nome,sobrenome)
VALUES (:nome,:sobrenome)";

Vimos tambm 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 no funciona apenas para selecionar dados?


Resposta: No! O rowCount , neste caso est com a funo do antigo mysql_affected_rows, que
retorna o nmero de linhas afetadas.
Em nosso caso, 1 cadastrado foi executado com sucesso , resultando ento na mensagem Aluno
cadastrado com sucesso!;
Lembrando que poderamos tambm fazer nosso cadastro utilizando os pontos de interrogao.
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 INTERROGAO

<?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, fcil e seguro utilizar o PDO para fazer nosso INSERT n?

Aula 05 Deletando Dados com PDO


Na 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 UTILIZAO 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 "No foi possvel 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 "No foi possvel deletar o aluno.";

}
}catch(PDOException $error){

echo "Error ao deletar aluno: ". $error->getMessage();


}

?>

LEMBRANDO TAMBM, QUE PODERIAMOS UTILIZAR OS FAMOSOS PONTOS DE


INTERROGAO 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 "No foi possvel deletar o aluno.";

}
}catch(PDOException $error){

echo "Error ao deletar aluno: ". $error->getMessage();


}

?>

Simples, e descomplicado.

Aula 06 Atualizando Dados com PDO


Hoje iremos ento, 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
aps, 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:PODERAMOS UTILIZAR OS PONTOS DE INTERROGAO ? 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: Poderamos utilizar arrays para fazer tal atualizao? Seria timo para realizar mltiplas
atualizaes de dados correto?
Resposta: Sim, podemos utilizar arrays. E, sim seria timo para manipulao mltipla de dados.
EXEMPLO UTILIZANDO ARRAY SEM A UTILIZAO DOS PONTOS DE INTERROGAO.
<?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 INTERROGAO.


<?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 atualizaes utilizando o PDO?

Você também pode gostar