Escolar Documentos
Profissional Documentos
Cultura Documentos
CRUDcomPHPPDO
www.devmedia.com.br
[versoparaimpresso]
Linkoriginal:http://www.devmedia.com.br/articles/viewcomp.asp?comp=28873
Olpessoal,emumartigoanteriorfalamosumpoucosobreanovaAPIPDO.Vimos
comofazerparaseconectarumbancodedadosMySQLecomoretornarvalores
deumbancodedados.
Nesseartigoiremoscontinuarfalandosobreesseassunto,squedessavez
iremosvercomofazemospararealizarumCRUD.
UmaobservaointeressantequeoPDOforneceumacamadadeabstraocom
obancodedados,issoocorreporqueoPDOfazconexocomdiversosbancosde
dadosdiferentes,comoMySQL,PLSQL,damesmaforma,tendoanicacoisa
diferenteastringdeconexo.
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=28873
1/7
19/05/2016
CRUDcomPHPPDO
ComoapartedoRead(ler)nsjvimosnoartigoanteriorjuntocomaconexo
(verlinknoinciodoartigo),nesseartigoiremostratarapenasoInsert,updatee
delete.
VamoscomearcomoInsertusandooPDO.
Insert
AntesdevermoscomofazercomoPDO,iremosvercomoinserirdadosnobanco
dedadoscomaapimysql,aqualnomaisrecomendadoseuuso.
Listagem1:InserindodadosnatabelacomAPImysql
<?php
$nome=$_POST["nome"];
$email=$_POST["email"];
$tel=$_POST["tel"];
include_once'conexao.php';
$sql="insertintoclientevalues(null,
'".$nome."','".$email."','".$tel."')";
//echo$sql;
if(mysql_query($sql,$con)){
$msg="Gravadocomsucesso!";
}else{
$msg="Erroaogravar!";
}
mysql_close($con);
?>
Comopodemosvermuitosimples,masfoiconsideradodeprecated,ouseja,foi
descontinuadopelagaleradoPHP,vamosvercomopodemosfazeroinsertusando
PHPPDO.
Listagem2:InsertusandoPHPPDO
<?php
try{
$pdo=newPDO('mysql:host=localhost;dbname=meuBancoDeDados',$username,$password);
$pdo>setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$stmt=$pdo>prepare('INSERTINTOminhaTabelaVALUES(:nome)');
$stmt>execute(array(
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=28873
2/7
19/05/2016
CRUDcomPHPPDO
':nome'=>'RicardoArrigoni'
));
echo$stmt>rowCount();
}catch(PDOException$e){
echo'Error:'.$e>getMessage();
?>
Podemosverquenomudamuitacoisanocdigo,apenasaformacomogerado,
usandotry..catcheasfunesdecomunicaotambm,masderestocontinua
bemparecida.
Nota:EssamaneiraaconsideradaidealpelamaioriadosdesenvolvedoresPHP
hojeemdia,mastambmexisteamysqli,quefuncionabemparecidocoma
mysql,comadiferenadeuminofinal.
Update
Paraatualizarumregistronatabeladobancodedadosutilizamosocomando
UPDATEemSQL,squeessaparteumpoucomaiscomplexa,poisnaverdade
vocvaiprecisarlistarosregistros,paraaisimescolheroquequereditare
atualizar.
Nonossoexemplonoireimeatentarnaformadereceberessesdadosparaai
simatualizaremsi,vamosdarnfaseapenasemcomofazeronossocdigode
atualizar.
ParafazeraatualizaousandoaAPImysqlsfazerassim:
Listagem3:Updatecommysql_
<?php
$nome=$_POST["nome"];
$email=$_POST["email"];
$tel=$_POST["tel"];
$id=$_POST["id"];
include_once'conexao.php';
$sql="updateclienteset
nome='".$nome."',email='".$email."',telefone='".$tel."'
whereidcliente=".$id;
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=28873
3/7
19/05/2016
CRUDcomPHPPDO
if(mysql_query($sql,$con)){
$msg="Atualizadocomsucesso!";
}else{
$msg="Erroaoatualizar!";
}
mysql_close($con);
?>
AgorautilizandooPDObastautilizaressecdigo:
Listagem4:UpdateusandoPDO
<?php
$id=5;
$nome="NovonomedoRicardo";
try{
$pdo=newPDO('mysql:host=localhost;dbname=meuBancoDeDados',$username,$password);
$pdo>setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$stmt=$pdo>prepare('UPDATEminhaTabelaSETnome=:nomeWHEREid=:id');
$stmt>execute(array(
':id'=>$id,
':nome'=>$nome
));
echo$stmt>rowCount();
}catch(PDOException$e){
echo'Error:'.$e>getMessage();
}
?>
LembrandoqueestamosusandoexemplosdistintosemcadaAPI,oquequeremos
mostrarcomofuncionaasfunesdoPDO,fiquelivreparaadaptaraoseu
projetodamaneiraqueacharmelhor.
Delete
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=28873
4/7
19/05/2016
CRUDcomPHPPDO
Afunodedeletepraticamenteigualaoinsertnaprtica,adiferenaqueao
invsdeinserirdados,vamosestarexcluindoelesdatabela,paraissoprecisamos
identificaroregistrodealgumamaneira(normalmenteusamosoprprioIDdo
registro)paraentoexcluirdatabela.
Excluindodadosusandoomysql_daformaquemostramosnalistagem5:
Listagem5:Excluindodadosusandomysql_
<?php
$id=$_GET["id"];
include_once'conexao.php';
$sql="deletefromclientewhereidcliente=".$id;
if(mysql_query($sql,$con)){
$msg="Deletadocomsucesso!";
}else{
$msg="Erroaodeletar!";
}
mysql_close($con);
?>
PararealizaraexclusocomoPDOficariadessaformanalistagem6:
Listagem6:ExcluindocomPDO
<?php
$id=5;
try{
$pdo=newPDO('mysql:host=localhost;dbname=meuBancoDeDados',$username,$password);
$pdo>setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$stmt=$pdo>prepare('DELETEFROMminhaTabelaWHEREid=:id');
$stmt>bindParam(':id',$id);
$stmt>execute();
echo$stmt>rowCount();
}catch(PDOException$e){
echo'Error:'.$e>getMessage();
}
?>
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=28873
5/7
19/05/2016
CRUDcomPHPPDO
ComopodemosverestamosutilizandoobindParamecasoutilizeelesempredeve
serpassadoumavarivelnosegundoparmetro,casocontrarioteruma
mensagemdeerro.
SELECT
Abaixopossvelverumcdigosimplesdeexemplodecomoexecutarumselect
nobancodedadosusandoPDO.
Listagem7:SelectemPDO
<?php
$consulta=$pdo>query("SELECTnome,usuarioFROMlogin;");
while($linha=$consulta>fetch(PDO::FETCH_ASSOC)){
echo"Nome:{$linha['nome']}Usurio:{$linha['usuario']}<br/>";
}
?>
Concluso
Nesteartigonoabordeiasconexesenemalistagemdedados,focamosapenas
emaprendercomoinserir,atualizareexcluirregistrosnobancodedadosMySQL
utilizandooPDOdoPHP.
Setiveremalgumadvida,podemficaravontadeemusaroscomentriosabaixo
paraperguntarquetereiprazeremrespondlas.
Esperoquetenhamgostadoeatoprximoartigo.
Veja tambm
IntroduoaoPHPPDO
UsandoPDO(PHPDataObjects)paraaumentaraprodutividade
BibliotecaPDOPHP
RicardoArrigoni
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=28873
6/7
19/05/2016
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=28873
CRUDcomPHPPDO
7/7