README.md
CRUD Simples Utilizando PHP + MySql + Bootstrap 4
Cadastro Simples de Usuário Utilizando apenas PHP
Instalação
Criar a tabela no Banco de dados:
create table usuario(
    id integer primary key AUTO_INCREMENT,
    nome varchar(200) not null,
    sobrenome varchar(300) not null,
    idade integer not null,
    sexo char(1) not null
)
Configurar o arquivo Conexao.php dentro da pasta 'app/conexao': 
Adicione o codigo abaixo dentro da função getConexão(), caso seu banco seja Mysql ja está como padrão.
Lembre-se de alterar os dados(dbname,user,password) na conexão de acordo com seu banco.
-Conexão para MySql
 if (!isset(self::$instance)) {
           self::$instance = new PDO('mysql:host=localhost;dbname=github', 'root', '', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
           self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
           self::$instance->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_EMPTY_STRING);
       }
       return self::$instance;
-Conexão para PostgreSql
        $host = 'localhost;port=5432';
        $dbname = 'github';
        $user = 'root';
        $pass = '';
        try {
            if (!isset(self::$instance)) {
                self::$instance = new \PDO('pgsql:host='.$host.';dbname=' . $dbname . ';options=\'--client_encoding=UTF8\'', $user, $pass);
                self::$instance->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
                self::$instance->setAttribute(\PDO::ATTR_ORACLE_NULLS, \PDO::NULL_EMPTY_STRING);
            }
            return self::$instance;
        } catch (Exception $ex) {
            echo $ex.'<br>';
        }
Créditos
Brayan Monteiro
email: brayanmonteirooo@gmail.com
index.php
<?php
include_once "./app/conexao/Conexao.php";
include_once "./app/dao/UsuarioDAO.php";
include_once "./app/model/Usuario.php";
//instancia as classes
$usuario = new Usuario();
$usuariodao = new UsuarioDAO();
?>
<!DOCTYPE html>
CRUD Simples PHP
<br>
.menu,<br>
thead {<br>
background-color: #bbb !important;<br>
}</p>
<div class="highlight"><pre class="highlight plaintext"><code> .row {
padding: 10px;
}
</style>
</code></pre></div>
<p></head></p>
<p><body><br>
    <nav class="navbar navbar-light bg-light menu"><br>
        <div class="container"><br>
            <a class="navbar-brand" href="#"><br>
                CRUD PHP POO<br>
            </a><br>
        </div><br>
    </nav><br>
    <div class="container"><br>
        <form action="app/controller/UsuarioController.php" method="POST"><br>
            <div class="row"><br>
                <div class="col-md-3"><br>
                    <label>Nome</label><br>
                    <input type="text" name="nome" value="" autofocus class="form-control" require /><br>
                </div><br>
                <div class="col-md-5"><br>
                    <label>Sobrenome</label><br>
                    <input type="text" name="sobrenome" value="" class="form-control" require /><br>
                </div><br>
                <div class="col-md-2"><br>
                    <label>Idade</label><br>
                    <input type="number" name="idade" value="" class="form-control" require /><br>
                </div><br>
                <div class="col-md-2"><br>
                    <label>Sexo</label><br>
                    <select name="sexo" class="form-control"><br>
                        <option value="M">Masculino</option><br>
                        <option value="F">Feminino</option><br>
                    </select><br>
                </div><br>
                <div class="col-md-2"><br>
                    <br><br>
                    <button class="btn btn-primary" type="submit" name="cadastrar">Cadastrar</button><br>
                </div><br>
            </div><br>
        </form><br>
        <hr><br>
        <div class="table-responsive"><br>
            <table class="table table-sm table-bordered table-hover"><br>
                <thead><br>
                    <tr><br>
                        <th>Id</th><br>
                        <th>Nome</th><br>
                        <th>Sobrenome</th><br>
                        <th>Idade</th><br>
                        <th>Sexo</th><br>
                        <th>Ações</th><br>
                    </tr><br>
                </thead><br>
                <tbody><br>
                    <?php foreach ($usuariodao->read() as $usuario) : ?><br>
                        <tr><br>
                            <td><?= $usuario->getId() ?></td><br>
                            <td><?= $usuario->getNome() ?></td><br>
                            <td><?= $usuario->getSobrenome() ?></td><br>
                            <td><?= $usuario->getIdade() ?></td><br>
                            <td><?= $usuario->getSexo()?></td><br>
                            <td class="text-center"><br>
                                <button class="btn  btn-warning btn-sm" data-toggle="modal" data-target="#editar><?= $usuario->getId() ?>"><br>
                                    Editar<br>
                                </button><br>
                                <a href="app/controller/UsuarioController.php?del=<?= $usuario->getId() ?>"><br>
                                <button class="btn  btn-danger btn-sm" type="button">Excluir</button><br>
                                </a><br>
                            </td><br>
                        </tr><br>
                        <!-- Modal --><br>
                        <div class="modal fade" id="editar><?= $usuario->getId() ?>" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"><br>
                            <div class="modal-dialog modal-lg" role="document"><br>
                                <div class="modal-content"><br>
                                    <div class="modal-header"><br>
                                        <h5 class="modal-title" id="exampleModalLabel">Editar</h5><br>
                                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><br>
                                            <span aria-hidden="true">×</span><br>
                                        </button><br>
                                    </div><br>
                                    <div class="modal-body"><br>
                                        <form action="app/controller/UsuarioController.php" method="POST"><br>
                                            <div class="row"><br>
                                                <div class="col-md-5"><br>
                                                    <label>Nome</label><br>
                                                    <input type="text" name="nome" value="<?= $usuario->getNome() ?>" class="form-control" require /><br>
                                                </div><br>
                                                <div class="col-md-7"><br>
                                                    <label>Sobrenome</label><br>
                                                    <input type="text" name="sobrenome" value="<?= $usuario->getSobrenome() ?>" class="form-control" require /><br>
                                                </div><br>
                                            </div><br>
                                            <div class="row"><br>
                                                <div class="col-md-3"><br>
                                                    <label>Idade</label><br>
                                                    <input type="number" name="idade" value="<?= $usuario->getIdade() ?>" class="form-control" require /><br>
                                                </div><br>
                                                <div class="col-md-3"><br>
                                                    <label>Sexo</label><br>
                                                    <select name="sexo" class="form-control"><br>
                                                        <?php if ($usuario->getSexo() == 'F') : ?><br>
                                                            <option value="F">Feminino</option><br>
                                                            <option value="M">Masculino</option><br>
                                                        <?php else : ?><br>
                                                            <option value="M">Masculino</option><br>
                                                            <option value="F">Feminino</option><br>
                                                        <?php endif ?></p>
<div class="highlight"><pre class="highlight plaintext"><code>                                                </select>
                                            </div>
                                        </div>
                                        <div class="row">
                                            <div class="col-md-2">
                                                <br>
                                                <input type="hidden" name="id" value="<?= $usuario->getId() ?>" />
                                                <button class="btn btn-primary" type="submit" name="editar">Cadastrar</button>
                                            </div>
                                        </div>
                                    </form>
                                </div>
                        &lt;/div&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;?php endforeach ?&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
&lt;/div&gt;
</div>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</code></pre></div>
<p></body></p>
<h2>
  <a name="" href="#" class="anchor">
  </a>
  </html>
</h2>
<h2>
  <a name="appmodelusuariophp" href="#appmodelusuariophp" class="anchor">
  </a>
  /app/model/Usuario.php
</h2>
<p><?php</p>
<p>class Usuario{</p>
<div class="highlight"><pre class="highlight plaintext"><code>private $id;
private $nome;
private $sobrenome;
private $idade;
private $sexo;
function getId() {
    return $this->id;
}
function getNome() {
    return $this->nome;
}
function getSobrenome() {
    return $this->sobrenome;
}
function getIdade() {
    return $this->idade;
}
function getSexo() {
    return $this->sexo;
}
function setId($id) {
    $this->id = $id;
}
function setNome($nome) {
    $this->nome = $nome;
}
function setSobrenome($sobrenome) {
    $this->sobrenome = $sobrenome;
}
function setIdade($idade) {
    $this->idade = $idade;
}
function setSexo($sexo) {
    $this->sexo = $sexo;
}
</code></pre></div>
<p>}</p>
<hr>
<h2>
  <a name="appdaousuariodaophp" href="#appdaousuariodaophp" class="anchor">
  </a>
  /app/dao/UsuarioDAO.php
</h2>
<p><?php<br>
/*<br>
    Criação da classe Usuario com o CRUD<br>
*/<br>
class UsuarioDAO{</p>
<div class="highlight"><pre class="highlight plaintext"><code>public function create(Usuario $usuario) {
    try {
        $sql = "INSERT INTO usuario (
              nome,sobrenome,idade,sexo)
              VALUES (
              :nome,:sobrenome,:idade,:sexo)";
    $p_sql = Conexao::getConexao()-&gt;prepare($sql);
    $p_sql-&gt;bindValue(":nome", $usuario-&gt;getNome());
    $p_sql-&gt;bindValue(":sobrenome", $usuario-&gt;getSobrenome());
    $p_sql-&gt;bindValue(":idade", $usuario-&gt;getIdade());
    $p_sql-&gt;bindValue(":sexo", $usuario-&gt;getSexo());
    return $p_sql-&gt;execute();
} catch (Exception $e) {
    print "Erro ao Inserir usuario &lt;br&gt;" . $e . '&lt;br&gt;';
}
}
public function read() {
    try {
        $sql = "SELECT * FROM usuario order by nome asc";
        $result = Conexao::getConexao()->query($sql);
        $lista = $result->fetchAll(PDO::FETCH_ASSOC);
        $f_lista = array();
        foreach ($lista as $l) {
            $f_lista[] = $this->listaUsuarios($l);
        }
        return $f_lista;
    } catch (Exception $e) {
        print "Ocorreu um erro ao tentar Buscar Todos." . $e;
    }
}
public function update(Usuario $usuario) {
    try {
        $sql = "UPDATE usuario set
          nome=:nome,
          sobrenome=:sobrenome,
          idade=:idade,
          sexo=:sexo                  
          WHERE id = :id";
    $p_sql = Conexao::getConexao()-&gt;prepare($sql);
    $p_sql-&gt;bindValue(":nome", $usuario-&gt;getNome());
    $p_sql-&gt;bindValue(":sobrenome", $usuario-&gt;getSobrenome());
    $p_sql-&gt;bindValue(":idade", $usuario-&gt;getIdade());
    $p_sql-&gt;bindValue(":sexo", $usuario-&gt;getSexo());
    $p_sql-&gt;bindValue(":id", $usuario-&gt;getId());
    return $p_sql-&gt;execute();
} catch (Exception $e) {
    print "Ocorreu um erro ao tentar fazer Update&lt;br&gt; $e &lt;br&gt;";
}
}
public function delete(Usuario $usuario) {
    try {
        $sql = "DELETE FROM usuario WHERE id = :id";
        $p_sql = Conexao::getConexao()->prepare($sql);
        $p_sql->bindValue(":id", $usuario->getId());
        return $p_sql->execute();
    } catch (Exception $e) {
        echo "Erro ao Excluir usuario<br> $e <br>";
    }
}
private function listaUsuarios($row) {
    $usuario = new Usuario();
    $usuario->setId($row['id']);
    $usuario->setNome($row['nome']);
    $usuario->setSobrenome($row['sobrenome']);
    $usuario->setIdade($row['idade']);
    $usuario->setSexo($row['sexo']);
return $usuario;
}
</code></pre></div>
<p>}</p>
<h2>
  <a name="gt" href="#gt" class="anchor">
  </a>
   ?>
</h2>
<h2>
  <a name="appcontrollerusuariocontrollerphp" href="#appcontrollerusuariocontrollerphp" class="anchor">
  </a>
  /app/controller/UsuarioController.php
</h2>
<p><?php<br>
include_once "../conexao/Conexao.php";<br>
include_once "../model/Usuario.php";<br>
include_once "../dao/UsuarioDAO.php";</p>
<p>//instancia as classes<br>
$usuario = new Usuario();<br>
$usuariodao = new UsuarioDAO();</p>
<p>//pega todos os dados passado por POST</p>
<p>$d = filter_input_array(INPUT_POST);</p>
<p>//se a operação for gravar entra nessa condição<br>
if(isset($_POST['cadastrar'])){</p>
<div class="highlight"><pre class="highlight plaintext"><code>$usuario->setNome($d['nome']);
$usuario->setSobrenome($d['sobrenome']);
$usuario->setIdade($d['idade']);
$usuario->setSexo($d['sexo']);
$usuariodao->create($usuario);
header("Location: ../../");
</code></pre></div>
<p>} <br>
// se a requisição for editar<br>
else if(isset($_POST['editar'])){</p>
<div class="highlight"><pre class="highlight plaintext"><code>$usuario->setNome($d['nome']);
$usuario->setSobrenome($d['sobrenome']);
$usuario->setIdade($d['idade']);
$usuario->setSexo($d['sexo']);
$usuario->setId($d['id']);
$usuariodao->update($usuario);
header("Location: ../../");
</code></pre></div>
<p>}<br>
// se a requisição for deletar<br>
else if(isset($_GET['del'])){</p>
<div class="highlight"><pre class="highlight plaintext"><code>$usuario->setId($_GET['del']);
$usuariodao->delete($usuario);
header("Location: ../../");
</code></pre></div>
<p>}else{<br>
    header("Location: ../../");</p>
<h2>
  <a name="" href="#" class="anchor">
  </a>
  }
</h2>
<h2>
  <a name="appconexaoconexaophp" href="#appconexaoconexaophp" class="anchor">
  </a>
  /app/conexao/Conexao.php
</h2>
<p><?php<br>
class Conexao {</p>
<p>public static $instance;</p>
<p>private function __construct() {<br>
       //<br>
   }</p>
<p>public static function getConexao() {<br>
       if (!isset(self::$instance)) {<br>
           self::$instance = new PDO('mysql:host=localhost;dbname=crud_example', 'root', '', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));<br>
           self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);<br>
           self::$instance->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_EMPTY_STRING);<br>
       }</p>
<div class="highlight"><pre class="highlight plaintext"><code>   return self::$instance;
</code></pre></div>
<p>}</p>
<p>}</p>
              
    
Top comments (0)