PHP

Em por

Uma observação interessante é que o PDO fornece uma camada de abstração com o banco de dados, isso ocorre porque o PDO faz conexão com diversos bancos de dados diferentes, como MySQL, PLSQL, da mesma forma, tendo a única coisa diferente a string de conexão.

Mas afinal, o que é um CRUD?

O CRUD vem do inglês, das palavras (Create, Read, Update, Delete) que quer dizer basicamente as 4 (quatro) principais operações com um banco de dados(inserir, ler, atualizar, excluir).

Quando pensamos em qualquer website dinâmico ou sistemas em gerais, a primeira coisa que vem na nossa cabeça é o CRUD, sem ele nada funciona, pois é com ele que realizamos as interações com o banco de dados.

Vamos começar com o Insert usando o PDO.

Insert

Antes de vermos como fazer com o PDO, iremos ver como inserir dados no banco de dados com a api mysql, a qual não é mais recomendado seu uso.

Inserindo dados na tabela com API mysql

 <?php //recebe os parâmetros via POST $nome = $_POST["nome"]; $email = $_POST["email"]; $tel = $_POST["tel"]; //inclui o arquivo de conexão include_once 'conexao.php'; //preapara a query $sql = "INSERT INTO cliente VALUES(null,'".$nome."','".$email."','".$tel."')"; //echo $sql; if(mysql_query($sql,$con)){ $msg = "Gravado com sucesso!"; }else{ $msg = "Erro ao gravar!"; } //fecha conexão mysql_close($con); ?>

Como podemos ver é muito simples, mas foi considerado deprecated, ou seja, foi descontinuado pela galera do PHP, vamos ver como podemos fazer o insert usando PHP PDO.

Insert usando PHP PDO

 <?php try { //defino os parâmetros de conexão com o banco de dados $pdo = new PDO('mysql:host=localhost;dbname=meuBancoDeDados', $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //preparo minha query a ser executada $stmt = $pdo->prepare('INSERT INTO minhaTabela VALUES(:pnome)'); //a variável :pnome recebe essa sintaxe por meio que padrão, onde os : mostra que ela vai receber o valor e o p antes do nome vem de parâmetro $stmt->execute(array( ':pnome' => 'Ricardo Arrigoni' )); echo $stmt->rowCount(); }catch(PDOException $e) { echo 'Error: ' . $e->getMessage(); } ?>

Podemos ver que não muda muita coisa no código, apenas a forma como é gerado, usando try..catch e as funções de comunicação também, mas de resto continua bem parecida. Nota: Essa maneira é a considerada ideal pela maioria dos desenvolvedores PHP hoje em dia, mas também existe a mysqli, que funciona bem parecido com a mysql, com a diferença de um “i” no final.

Update

Para atualizar um registro na tabela do banco de dados utilizamos o comando UPDATE em SQL, só que essa parte é um pouco mais complexa, pois na verdade você vai precisar listar os registros, para ai sim escolher o que quer editar e atualizar.

No nosso exemplo não irei me atentar na forma de receber esses dados para ai sim atualizar em si, vamos dar ênfase apenas em como fazer o nosso código de atualizar.

Para fazer a atualização usando a API mysql é só fazer assim:

Update com mysql

 <?php //recebe os parâmetros via POST $nome = $_POST["nome"]; $email = $_POST["email"]; $tel = $_POST["tel"]; //inclui o arquivo de conexão include_once 'conexao.php'; //preapara a query $sql = "update cliente set nome = '".$nome."', email = '".$email."',telefone = '".$tel."' where idcliente = ".$id; //se a query estiver correta os dados serão atualizados if(mysql_query($sql,$con)){ $msg = "Atualizado com sucesso!"; }else{ $msg = "Erro ao atualizar!"; } //fecha conexão mysql_close($con); ?>

Agora utilizando o PDO basta utilizar esse código:

Update usando PDO

 <?php //pega o id que se deseja modificar $id = 5; //O novo valor do campo a ser modificado $nome = "Novo nome do Ricardo"; // try { //defino os parâmetros de conexão com o banco de dados $pdo = new PDO('mysql:host=localhost;dbname=meuBancoDeDados', $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //preparo minha query $stmt = $pdo->prepare('UPDATE minhaTabela SET nome = :pnome WHERE id = :pid'); //executo o comando da query passando como parâmetro minhas variáveis $stmt->execute(array( ':pid' => $id, ':pnome' => $nome )); echo $stmt->rowCount(); } catch(PDOException $e) { echo 'Error: ' . $e->getMessage(); } ?>

Lembrando que estamos usando exemplos distintos em cada API, o que queremos é mostrar como funciona as funções do PDO, fique livre para adaptar ao seu projeto da maneira que achar melhor.

Delete

A função de delete é praticamente igual ao insert na prática, a diferença é que ao invés de inserir dados, vamos estar excluindo eles da tabela, para isso precisamos identificar o registro de alguma maneira(normalmente usamos o próprio ID do registro) para então excluir da tabela.

Excluindo dados usando o mysql_ é da forma que mostramos abaixo:

Excluindo dados usando mysql

 <?php //recebe o ID passado via GET $id = $_GET["id"]; //inclui o arquivo de conexão include_once 'conexao.php'; //prepara minha query $sql = "delete from cliente where idcliente = ".$id; //se estiver tudo ok executa query apagando registro no BD if(mysql_query($sql,$con)){ $msg = "Deletado com sucesso!"; }else{ $msg = "Erro ao deletar!"; } //fecha conexão mysql_close($con); ?>

Para realizar a exclusão com o PDO ficaria dessa forma abaixo:

Excluindo com PDO

 <?php //id de quem se deseja apagar o registro $id = 5; try { //faz a conexão com o BD $pdo = new PDO('mysql:host=localhost;dbname=meuBancoDeDados', $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //prepara a query $stmt = $pdo->prepare('DELETE FROM minhaTabela WHERE id = :pid'); //passa os parametros para a query $stmt->bindParam(':pid', $id); //executa a query $stmt->execute(); echo $stmt->rowCount(); } catch(PDOException $e) { echo 'Error: ' . $e->getMessage(); } ?>

Como podemos ver estamos utilizando o bindParam e caso utilize ele sempre deve ser passado uma variável no segundo parâmetro, caso contrario terá uma mensagem de erro.

SELECT

Abaixo é possível ver um código simples de exemplo de como executar um select no banco de dados usando PDO.

Select em PDO

 <?php //preparo a query $consulta = $pdo->query("SELECT nome, usuario FROM login;"); //faço um laço while para enquanto tiver registros no banco ele vai pegando um a um até acabar while ($linha = $consulta->fetch(PDO::FETCH_ASSOC)) { echo "Nome: {$linha['nome']} - Usuário: {$linha['usuario']}<br />"; } ?>

Conclusão

Neste artigo não abordei as conexões e nem a listagem de dados, focamos apenas em aprender como inserir, atualizar e excluir registros no banco de dados MySQL utilizando o PDO do PHP.

Se tiverem alguma dúvida, podem ficar a vontade em usar os comentários abaixo para perguntar que terei prazer em respondê-las.

Espero que tenham gostado e até o próximo artigo e bons estudos.

Veja Também:

Artigos Relacionados a categoria: PHP

Olá, deixe seu comentário para CRUD com PHP PDO

Enviando Comentário Fechar :/

...AINDA NÃO VIU NOSSO PORTFÓLIO?

Se ainda não viu nosso Portfólio e quer conhecer um pouco mais... aproveite e veja agora mesmo e tenha um site de qualidade para o seu negócio!

[contato]
Ver o Portfólio Agora