Skip to content

Instantly share code, notes, and snippets.

@valdineireis
Created January 23, 2020 04:01
Show Gist options
  • Save valdineireis/545f181ba63656720433ea1504c133bd to your computer and use it in GitHub Desktop.
Save valdineireis/545f181ba63656720433ea1504c133bd to your computer and use it in GitHub Desktop.
Very Simple Exemple PHP Data Object
// connect.php
<?php
declare(strict_types=1);
$pdo = null;
try {
$pdo = new PDO('mysql:host=localhost;dbname=exemplo', 'root', 'root');
} catch (Exception $e) {
echo $e->getMessage();
die();
}
return $pdo;
// ***************************************
// list.php
<?php
declare(strict_types=1);
$pdo = require 'connect.php';
$sql = 'select * from produtos';
echo '<h3>Produtos: </h3>';
foreach ($pdo->query($sql) as $key => $value) {
echo 'Id: ' . $value['id'] . '<br> Descrição: ' . $value['descricao'] . '<hr>';
}
// ***************************************
// insert.php
<?php
declare(strict_types=1);
$pdo = require 'connect.php';
$sql = 'insert into produtos(descricao) values(?)';
$prepare = $pdo->prepare($sql);
$prepare->bindParam(1, $_GET(['descricao']));
$prepare->execute();
echo $prepare->rowCount();
// ***************************************
// update.php
<?php
declare(strict_types=1);
$pdo = require 'connect.php';
$sql = 'update produtos set descricao = ? where id = ?';
$prepare = $pdo->prepare($sql);
$prepare->bindParam(1, $_GET(['descricao']));
$prepare->bindParam(2, $_GET(['id']));
$prepare->execute();
echo $prepare->rowCount();
// ***************************************
// delete.php
<?php
declare(strict_types=1);
$pdo = require 'connect.php';
$sql = 'delete from produtos where id = ?';
$prepare = $pdo->prepare($sql);
$prepare->bindParam(1, $_GET(['id']));
$prepare->execute();
echo $prepare->rowCount();
// ***************************************
// Abstração
// Produto.php
declare(strict_types=1);
class Produto
{
/**
* @var PDO
*/
private $conexao;
public function __construct()
{
try {
$this->conexao = new PDO('mysql:host=localhost;dbname=exemplo', 'root', '123');
} catch (Exception $e) {
echo $e->getMessage();
die();
}
}
public function list(): array
{
$sql = 'select * from produtos';
$produtos = [];
foreach ($this->conexao->query($sql) as $key => $value) {
array_push($produtos, $value);
}
return $produtos;
}
public function insert(string $descricao): int
{
$sql = 'insert into produtos(descricao) values(?)';
$prepare = $this->conexao->prepare($sql);
$prepare->bindParam(1, $descricao);
$prepare->execute();
return $prepare->rowCount();
}
public function update(string $descricao, int $id): int
{
$sql = 'update produtos set descricao = ? where id = ?';
$prepare = $this->conexao->prepare($sql);
$prepare->bindParam(1, $descricao);
$prepare->bindParam(2, $id);
$prepare->execute();
return $prepare->rowCount();
}
public function delete(int $id): int
{
$sql = 'delete from produtos where id = ?';
$prepare = $this->conexao->prepare($sql);
$prepare->bindParam(1, $id);
$prepare->execute();
return $prepare->rowCount();
}
}
// ***************************************
// index.php
<?php
require 'Produto.php';
$produto = new Produto();
switch ($_GET(['operacao'])) {
case 'list':
echo '<h3>Produtos: </h3>';
foreach ($produto->list() as $value) {
echo 'Id: ' . $value['id'] . '<br> Descrição: ' . $value['descricao'] . '<hr>';
}
break;
case 'insert':
$status = $produto->insert('Produto Teste 01');
if (!$status) {
echo "Não foi possível executar a operação!";
return false;
}
echo "Registro inserido com sucesso!";
break;
case 'update':
$status = $produto->update('Produto Teste 01 Atualizado', 1);
if (!$status) {
echo "Não foi possível executar a operação!";
return false;
}
echo "Registro atualizado com sucesso!";
break;
case 'delete':
$status = $produto->delete(1);
if (!$status) {
echo "Não foi possível executar a operação!";
return false;
}
echo "Registro removido com sucesso!";
break;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment