/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
浏览:552

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]删除
最新教程 更多>
  • 在PHP中如何高效检测空数组?
    在PHP中如何高效检测空数组?
    在PHP 中检查一个空数组可以通过各种方法在PHP中确定一个空数组。如果需要验证任何数组元素的存在,则PHP的松散键入允许对数组本身进行直接评估:一种更严格的方法涉及使用count()函数: if(count(count($ playerList)=== 0){ //列表为空。 } 对...
    编程 发布于2025-04-29
  • 如何干净地删除匿名JavaScript事件处理程序?
    如何干净地删除匿名JavaScript事件处理程序?
    删除匿名事件侦听器将匿名事件侦听器添加到元素中会提供灵活性和简单性,但是当要删除它们时,可以构成挑战,而无需替换元素本身就可以替换一个问题。 element? element.addeventlistener(event,function(){/在这里工作/},false); 要解决此问题,请考虑...
    编程 发布于2025-04-29
  • 如何同步迭代并从PHP中的两个等级阵列打印值?
    如何同步迭代并从PHP中的两个等级阵列打印值?
    同步的迭代和打印值来自相同大小的两个数组使用两个数组相等大小的selectbox时,一个包含country代码的数组,另一个包含乡村代码,另一个包含其相应名称的数组,可能会因不当提供了exply for for for the uncore for the forsion for for ytry...
    编程 发布于2025-04-29
  • 如何在Java中正确显示“ DD/MM/YYYY HH:MM:SS.SS”格式的当前日期和时间?
    如何在Java中正确显示“ DD/MM/YYYY HH:MM:SS.SS”格式的当前日期和时间?
    如何在“ dd/mm/yyyy hh:mm:mm:ss.ss”格式“ gormat 解决方案: args)抛出异常{ 日历cal = calendar.getInstance(); SimpleDateFormat SDF =新的SimpleDateFormat(“...
    编程 发布于2025-04-29
  • 如何为PostgreSQL中的每个唯一标识符有效地检索最后一行?
    如何为PostgreSQL中的每个唯一标识符有效地检索最后一行?
    postgresql:为每个唯一标识符在postgresql中提取最后一行,您可能需要遇到与数据集合中每个不同标识的信息相关的信息。考虑以下数据:[ 1 2014-02-01 kjkj 在数据集中的每个唯一ID中检索最后一行的信息,您可以在操作员上使用Postgres的有效效率: id dat...
    编程 发布于2025-04-29
  • Java是否允许多种返回类型:仔细研究通用方法?
    Java是否允许多种返回类型:仔细研究通用方法?
    在Java中的多个返回类型:一种误解类型:在Java编程中揭示,在Java编程中,Peculiar方法签名可能会出现,可能会出现,使开发人员陷入困境,使开发人员陷入困境。 getResult(string s); ,其中foo是自定义类。该方法声明似乎拥有两种返回类型:列表和E。但这确实是如此吗...
    编程 发布于2025-04-29
  • 如何使用PHP从XML文件中有效地检索属性值?
    如何使用PHP从XML文件中有效地检索属性值?
    从php $xml = simplexml_load_file($file); foreach ($xml->Var[0]->attributes() as $attributeName => $attributeValue) { echo $attributeName,...
    编程 发布于2025-04-29
  • 使用jQuery如何有效修改":after"伪元素的CSS属性?
    使用jQuery如何有效修改":after"伪元素的CSS属性?
    在jquery中了解伪元素的限制:访问“ selector 尝试修改“:”选择器的CSS属性时,您可能会遇到困难。 This is because pseudo-elements are not part of the DOM (Document Object Model) and are th...
    编程 发布于2025-04-29
  • 如何克服PHP的功能重新定义限制?
    如何克服PHP的功能重新定义限制?
    克服PHP的函数重新定义限制在PHP中,多次定义一个相同名称的函数是一个no-no。尝试这样做,如提供的代码段所示,将导致可怕的“不能重新列出”错误。 但是,PHP工具腰带中有一个隐藏的宝石:runkit扩展。它使您能够灵活地重新定义函数。 runkit_function_renction_re...
    编程 发布于2025-04-29
  • 在C#中如何高效重复字符串字符用于缩进?
    在C#中如何高效重复字符串字符用于缩进?
    在基于项目的深度下固定字符串时,重复一个字符串以进行凹痕,很方便有效地有一种有效的方法来返回字符串重复指定的次数的字符串。使用指定的次数。 constructor 这将返回字符串“ -----”。 字符串凹痕= new String(' - ',depth); console.Wr...
    编程 发布于2025-04-29
  • 在GO中构造SQL查询时,如何安全地加入文本和值?
    在GO中构造SQL查询时,如何安全地加入文本和值?
    在go中构造文本sql查询时,在go sql queries 中,在使用conting and contement和contement consem per时,尤其是在使用integer per当per当per时,per per per当per. [&​​&&&&&&&&&&&&&&&默元组方法在...
    编程 发布于2025-04-29
  • 如何将来自三个MySQL表的数据组合到新表中?
    如何将来自三个MySQL表的数据组合到新表中?
    mysql:从三个表和列的新表创建新表 答案:为了实现这一目标,您可以利用一个3-way Join。 选择p。*,d.content作为年龄 来自人为p的人 加入d.person_id = p.id上的d的详细信息 加入T.Id = d.detail_id的分类法 其中t.taxonomy =...
    编程 发布于2025-04-29
  • CSS强类型语言解析
    CSS强类型语言解析
    您可以通过其强度或弱输入的方式对编程语言进行分类的方式之一。在这里,“键入”意味着是否在编译时已知变量。一个例子是一个场景,将整数(1)添加到包含整数(“ 1”)的字符串: result = 1 "1";包含整数的字符串可能是由带有许多运动部件的复杂逻辑套件无意间生成的。它也可以是故意从单个真理...
    编程 发布于2025-04-29
  • 为什么尽管有效代码,为什么在PHP中捕获输入?
    为什么尽管有效代码,为什么在PHP中捕获输入?
    在php ;?>" method="post">The intention is to capture the input from the text box and display it when the submit button is clicked.但是,输出...
    编程 发布于2025-04-29
  • 如何在其容器中为DIV创建平滑的左右CSS动画?
    如何在其容器中为DIV创建平滑的左右CSS动画?
    通用CSS动画,用于左右运动 ,我们将探索创建一个通用的CSS动画,以向左和右移动DIV,从而到达其容器的边缘。该动画可以应用于具有绝对定位的任何div,无论其未知长度如何。问题:使用左直接导致瞬时消失 更加流畅的解决方案:混合转换和左 [并实现平稳的,线性的运动,我们介绍了线性的转换。这...
    编程 发布于2025-04-29

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

Copyright© 2022 湘ICP备2022001581号-3