/app/model/Usuario.php

class Usuario{


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;
}


}





/app/dao/UsuarioDAO.php


/*

Criação da classe Usuario com o CRUD

*/

class UsuarioDAO{


try {
$sql = \\\"INSERT INTO usuario (

nome,sobrenome,idade,sexo)
VALUES (
:nome,:sobrenome,:idade,:sexo)\\\";

    $p_sql = Conexao::getConexao()->prepare($sql);    $p_sql->bindValue(\\\":nome\\\", $usuario->getNome());    $p_sql->bindValue(\\\":sobrenome\\\", $usuario->getSobrenome());    $p_sql->bindValue(\\\":idade\\\", $usuario->getIdade());    $p_sql->bindValue(\\\":sexo\\\", $usuario->getSexo());    return $p_sql->execute();} catch (Exception $e) {    print \\\"Erro ao Inserir usuario <br>\\\" . $e . \\'<br>\\';}

}

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()->prepare($sql);    $p_sql->bindValue(\\\":nome\\\", $usuario->getNome());    $p_sql->bindValue(\\\":sobrenome\\\", $usuario->getSobrenome());    $p_sql->bindValue(\\\":idade\\\", $usuario->getIdade());    $p_sql->bindValue(\\\":sexo\\\", $usuario->getSexo());    $p_sql->bindValue(\\\":id\\\", $usuario->getId());    return $p_sql->execute();} catch (Exception $e) {    print \\\"Ocorreu um erro ao tentar fazer Update<br> $e <br>\\\";}

}

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
$e
\\\";
}
}

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;

}


}




?>




/app/controller/UsuarioController.php


include_once \\\"../conexao/Conexao.php\\\";

include_once \\\"../model/Usuario.php\\\";

include_once \\\"../dao/UsuarioDAO.php\\\";

//instancia as classes

$usuario = new Usuario();

$usuariodao = new UsuarioDAO();

//pega todos os dados passado por POST

$d = filter_input_array(INPUT_POST);

//se a operação for gravar entra nessa condição

if(isset($_POST['cadastrar'])){


$usuario->setSobrenome($d[\\'sobrenome\\']);
$usuario->setIdade($d[\\'idade\\']);
$usuario->setSexo($d[\\'sexo\\']);

$usuariodao->create($usuario);

header(\\\"Location: ../../\\\");


}

// se a requisição for editar

else if(isset($_POST['editar'])){


$usuario->setSobrenome($d[\\'sobrenome\\']);
$usuario->setIdade($d[\\'idade\\']);
$usuario->setSexo($d[\\'sexo\\']);
$usuario->setId($d[\\'id\\']);

$usuariodao->update($usuario);

header(\\\"Location: ../../\\\");


}

// se a requisição for deletar

else if(isset($_GET['del'])){


$usuariodao->delete($usuario);

header(\\\"Location: ../../\\\");


}else{

header(\\\"Location: ../../\\\");




}




/app/conexao/Conexao.php


class Conexao {

public static $instance;

private function __construct() {

//

}

public static function getConexao() {

if (!isset(self::$instance)) {

self::$instance = new PDO('mysql:host=localhost;dbname=crud_example', '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);

}



}

}

","image":"http://www.luping.net/uploads/20250322/174263796467de8b8cb0287.jpg174263796467de8b8cb028d.jpg","datePublished":"2025-03-22T20:00:11+08:00","dateModified":"2025-03-22T20:00:11+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 使用php + mysql + bootstrap 4的简单CRUD 4

使用php + mysql + bootstrap 4的简单CRUD 4

发布于2025-03-22
浏览:271

CRUD Simples Utilizando PHP   MySql   Bootstrap 4

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.'
'; }

Créditos

Brayan Monteiro

email: [email protected]

index.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();
?>










CRUD Simples PHP



.menu,

thead {

background-color: #bbb !important;

}
padding: 10px;
}
</style>



版本声明 本文转载于:https://dev.to/brayanmonteiroo/crud-simples-utilizando-php-mysql-bootstrap-4-m4a?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • Go web应用何时关闭数据库连接?
    Go web应用何时关闭数据库连接?
    在GO Web Applications中管理数据库连接很少,考虑以下简化的web应用程序代码:出现的问题:何时应在DB连接上调用Close()方法?,该特定方案将自动关闭程序时,该程序将在EXITS EXITS EXITS出现时自动关闭。但是,其他考虑因素可能保证手动处理。选项1:隐式关闭终止数...
    编程 发布于2025-05-01
  • C++20 Consteval函数中模板参数能否依赖于函数参数?
    C++20 Consteval函数中模板参数能否依赖于函数参数?
    [ consteval函数和模板参数依赖于函数参数在C 17中,模板参数不能依赖一个函数参数,因为编译器仍然需要对非contexexpr futcoriations contim at contexpr function进行评估。 compile time。 C 20引入恒定函数,必须在编译时进行...
    编程 发布于2025-05-01
  • 如何在Chrome中居中选择框文本?
    如何在Chrome中居中选择框文本?
    选择框的文本对齐:局部chrome-inly-ly-ly-lyly solument 您可能希望将文本中心集中在选择框中,以获取优化的原因或提高可访问性。但是,在CSS中的选择元素中手动添加一个文本 - 对属性可能无法正常工作。初始尝试 state)</option> < op...
    编程 发布于2025-05-01
  • 在Java中如何为PNG文件添加坐标轴和标签?
    在Java中如何为PNG文件添加坐标轴和标签?
    如何用java 在现有png映像中添加轴和标签的axes和labels如何注释png文件可能具有挑战性。与其尝试可能导致错误和不一致的修改,不如建议在图表创建过程中集成注释。使用JFReechArt import java.awt.color; 导入java.awt.eventqueue; 导入...
    编程 发布于2025-05-01
  • 找到最大计数时,如何解决mySQL中的“组函数\”错误的“无效使用”?
    找到最大计数时,如何解决mySQL中的“组函数\”错误的“无效使用”?
    如何在mySQL中使用mySql 检索最大计数,您可能会遇到一个问题,您可能会在尝试使用以下命令:理解错误正确找到由名称列分组的值的最大计数,请使用以下修改后的查询: 计数(*)为c 来自EMP1 按名称组 c desc订购 限制1 查询说明 select语句提取名称列和每个名称...
    编程 发布于2025-05-01
  • PHP与C++函数重载处理的区别
    PHP与C++函数重载处理的区别
    作为经验丰富的C开发人员脱离谜题,您可能会遇到功能超载的概念。这个概念虽然在C中普遍,但在PHP中构成了独特的挑战。让我们深入研究PHP功能过载的复杂性,并探索其提供的可能性。在PHP中理解php的方法在PHP中,函数超载的概念(如C等语言)不存在。函数签名仅由其名称定义,而与他们的参数列表无关。...
    编程 发布于2025-05-01
  • 如何为PostgreSQL中的每个唯一标识符有效地检索最后一行?
    如何为PostgreSQL中的每个唯一标识符有效地检索最后一行?
    postgresql:为每个唯一标识符在postgresql中提取最后一行,您可能需要遇到与数据集合中每个不同标识的信息相关的信息。考虑以下数据:[ 1 2014-02-01 kjkj 在数据集中的每个唯一ID中检索最后一行的信息,您可以在操作员上使用Postgres的有效效率: id dat...
    编程 发布于2025-05-01
  • 如何从2D数组中提取元素?使用另一数组的索引
    如何从2D数组中提取元素?使用另一数组的索引
    Using NumPy Array as Indices for the 2nd Dimension of Another ArrayTo extract specific elements from a 2D array based on indices provided by a second ...
    编程 发布于2025-05-01
  • 为什么在我的Linux服务器上安装Archive_Zip后,我找不到“ class \” class \'ziparchive \'错误?
    为什么在我的Linux服务器上安装Archive_Zip后,我找不到“ class \” class \'ziparchive \'错误?
    class'ziparchive'在Linux Server上安装Archive_zip时找不到错误 commant in lin ins in cland ins in lin.11 on a lin.1 in a lin.11错误:致命错误:在... cass中找不到类z...
    编程 发布于2025-05-01
  • JavaScript中如何动态访问全局变量?
    JavaScript中如何动态访问全局变量?
    在JavaScript 一种方法是使用窗口对象存储和检索变量。通过引用全局范围,可以使用其名称动态访问变量。 //一个脚本 var somevarname_10 = 20; //另一个脚本 window.all_vars = {}; window.all_vars ['somevarnam...
    编程 发布于2025-05-01
  • 为什么我在PHP中遇到“未定义函数mysql_connect()”错误?
    为什么我在PHP中遇到“未定义函数mysql_connect()”错误?
    故障排除“未定义的函数mysql_connect()” 在尝试使用mysql时,插入“未定义函数mysql_connect()”错误?这是解决此问题的综合指南。分析SolutionTo address this issue, you have two options:1.迁移到PDO或MySQLI...
    编程 发布于2025-05-01
  • 您可以使用CSS在Chrome和Firefox中染色控制台输出吗?
    您可以使用CSS在Chrome和Firefox中染色控制台输出吗?
    在javascript console 中显示颜色是可以使用chrome的控制台显示彩色文本,例如红色的redors,for for for for错误消息?回答是的,可以使用CSS将颜色添加到Chrome和Firefox中的控制台显示的消息(版本31或更高版本)中。要实现这一目标,请使用以下模...
    编程 发布于2025-05-01
  • Java为何无法创建泛型数组?
    Java为何无法创建泛型数组?
    通用阵列创建错误 arrayList [2]; JAVA报告了“通用数组创建”错误。为什么不允许这样做?答案:Create an Auxiliary Class:public static ArrayList<myObject>[] a = new ArrayList<myO...
    编程 发布于2025-05-01
  • 为什么我的CSS背景图像出现?
    为什么我的CSS背景图像出现?
    故障排除:CSS背景图像未出现 ,您的背景图像尽管遵循教程说明,但您的背景图像仍未加载。图像和样式表位于相同的目录中,但背景仍然是空白的白色帆布。而不是不弃用的,您已经使用了CSS样式: bockent {背景:封闭图像文件名:背景图:url(nickcage.jpg); 如果您的html,css...
    编程 发布于2025-05-01
  • 如何有效地转换PHP中的时区?
    如何有效地转换PHP中的时区?
    在PHP 利用dateTime对象和functions DateTime对象及其相应的功能别名为时区转换提供方便的方法。例如: //定义用户的时区 date_default_timezone_set('欧洲/伦敦'); //创建DateTime对象 $ dateTime = ne...
    编程 发布于2025-05-01

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3