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: " integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="" 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>
SOCIAL SHARE CARD GENERATOR