博客列表 >数据库的CURD操作实战案例

数据库的CURD操作实战案例

LIWEN的博客
LIWEN的博客原创
2018年01月02日 16:49:51695浏览

一、文档结构

将各页面公用的页头、页尾、数据库连接文件、数据库配置文件放到公共文件夹public中,将注册等操作页面放在根目录下。

二、页面代码

1、login.php文件代码如下:

<?php include 'public/header.php';?>
<div class="container">
    <div class="row">
        <div class="col-md-12">
            <h3 class="text-center">用户注册</h3>
            <form action="register.php" method="post" class="form-horizontal">
                <div class="form-group">
                    <label for="exampleInputEmail1">用户名</label>
                    <input type="text" class="form-control" id="name" placeholder="userName" name="name">
                </div>
                <div class="form-group">
                    <label for="exampleInputEmail1">Email</label>
                    <input type="email" class="form-control" id="email" name="email" placeholder="Email">
                </div>
                <div class="form-group">
                    <label for="exampleInputPassword1">密码</label>
                    <input type="password" class="form-control" id="password1" name="password1" placeholder="Password">
                </div>
                <div class="form-group">
                    <label for="exampleInputPassword1">校验密码</label>
                    <input type="password" class="form-control" id="password2" name="password2" placeholder="Password">
                </div>
                <button type="submit" class="btn btn-primary btn-block">注册</button><br>
            </form>
        </div>
    </div>
</div>

<?php include 'public/footer.php' ?>

2、对logoin进行操作的register.php文件代码如下:

<?php
/** 1、检测表单提交过来的信息 */
$pageTitle = '注册处理';   //设置当前页面的标题
include 'public/header.php';  //引入页头

//判断当前请求方法是否为POST方法,然后对用户的注册请求进行处理
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    $erro = []; //创建一个数组,用来存放错误信息

    //检测用户名
    if (empty($_POST['name'])) {
        $erro[] = '没有输入用户名,请检查';
    }else{
        $name = trim($_POST['name']);
    }

    //检测邮箱
    if (empty($_POST['email'])) {
        $erro[] = '没有输入邮箱,请检查';
    }else{
        $email = trim($_POST['email']);
    }

    //检测密码,因为密码需要输入两遍,所以要做相等的验证
    if (empty($_POST['password1'])) {  //第一行密码如果为空
        $erro[] = '没有输入密码,请检查';
    }else{
        if (empty($_POST['password2'])){  //第二行密码如果为空
            $erro[] = '没有输入校验密码,请检查';
        }else{
            if ($_POST['password1'] == $_POST['password2']){  //判断两次密码输入是否一致
                $password = trim($_POST['password1']);
            }else{
                $erro[] = '两次密码输入不一致,请检查';
            }
        }
    }

    //如果错误信息数组为空,表示注册操作正确,将数据写入数据库
    if (empty($erro)){
        require 'public/connect.php';  //连接数据库
        //创建sql语句
          $sql = "INSERT user SET `name`='{$name}', `email`='{$email}',`password`=sha1('{$password}')";
        //执行插入操作
        if (mysqli_query($db,$sql)){
            echo '<script>alert("成功添加了'.mysqli_affected_rows($db).'条记录,主键id是'.mysqli_insert_id($db).'")</script>';
            echo "<script language='javascript'>window.location='http://localhost/26/login.php'</script>";
        }else{
            echo '<h3 style="color:red" >添加失败'.mysqli_error($db).'</h3>';
        }
        //关闭连接
        mysqli_close($db);
    }else{
        //打印erro数组
        foreach ($erro as $message) {
            echo '<h3 style="color:red">'.$message.'</h3>'; //输出错误信息
        }
    }

}


include 'public/footer.php';  //导入公共尾部

3、对数据库中数据查看的页面view.php代码如下:

<?php
header('Content-Type:text/html,charest=utf-8');
$pageTitle = '用户信息一览表';  //设置页面title
include 'public/header.php';   //引入头部文件
require 'public/connect.php';  //连接数据库

//查询用户信息表user
$sql = "SELECT * FROM user";  //创建查询语句
$result = mysqli_query($db,$sql);  //执行查询
$rows = [];  //创建一个存放查询结果的容器,初始为数组,它将是一个二维数组,与数组表对应

if ($result && mysqli_num_rows($result) > 0){
    while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC))
        $rows[] = $row;  //将每一次返回的结果存入数组$rows中,这是最终返回的结果
//    print_r($rows);查看查询是否有结果
}else {
    echo '数据表为空'.mysqli_error($db);
}
//释放结果
mysqli_free_result($result);
//关闭数据连接
mysqli_close($db);
?>
<div class="container">
    <div class="row">
        <div class="col-md-12">
            <table class="table table-bordered table-responsive text-center">
                <tr class="h5 bg-primary">
                    <td>ID</td>
                    <td>用户名</td>
                    <td>邮箱</td>
                    <td>操作</td>
                </tr>

                <!--
    1.下面循环输出用户信息,用foreach()的替代语法.
    2. 替代语法的目标就是一个: 干掉php代码中的大括号,因为html与php混写的时候,不断的切换会有很多大括号
    3. 过多的大括号,即不利于代码整洁,也容易出错,不利于代码维护
-->
                <?php foreach ($rows as $row) : ?>
                <tr>
                    <td><?php echo $row['id']; ?></td>
                    <td><?php echo $row['name']; ?></td>
                    <td><?php echo $row['email']; ?></td>
                    <!-- 添加编辑和删除操作时,用链接式的按钮更合适-->
                    <td>
                        <a class="btn btn-primary" href="edit.php?id=<?php echo $row['id']?>" role="button">编辑</a>
                        <a class="btn btn-danger" href="delete.php?id=<?php echo $row['id']?>" role="button">删除</a>
                    </td>
                </tr>
                <?php endforeach;?>
            </table>
        </div>
    </div>
</div>

<?php include 'public/footer.php';   //引入尾部文件 ?>

4、编辑页面eidt.php代码如下:

<?php
/** 1、检测表单提交过来的信息 */
$pageTitle = '编辑处理';   //设置当前页面的标题
include 'public/header.php';  //引入页头
$id = $_GET['id'];  //获取当前记录的id
require 'public/connect.php';  //连接数据库

//准备查询语句
$sql = "SELECT * FROM `user` WHERE `id` = ".$id;
$res = mysqli_query($db,$sql);  //执行查询

if ($res && mysqli_num_rows($res) > 0) {
    //根据主键查询,结果只有一条,所以不用循环
    $row = mysqli_fetch_array($res,MYSQLI_ASSOC);
}
?>

    <div class="container">
        <div class="row">
            <div class="col-md-12">
                <h3 class="text-center">用户编辑</h3>
                <form action="do_edit.php?id=<?php echo $row['id']?>" method="post" class="form-horizontal">
                    <div class="form-group">
                        <label for="exampleInputEmail1">用户名</label>
                        <input type="text" class="form-control" id="name" placeholder="userName" name="name" value="<?php echo $row['name']?>" readonly>
                    </div>
                    <div class="form-group">
                        <label for="exampleInputEmail1">Email</label>
                        <input type="email" class="form-control" id="email" name="email" placeholder="Email" value="<?php echo $row['email']?>">
                    </div>
                    <button type="submit" class="btn btn-primary btn-block">保存</button><br>
                </form>
            </div>
        </div>
    </div>


<?php include 'public/footer.php';  //导入公共尾部 ?>

5、执行编辑操作的文件do_eidt.php代码如下:

<?php
/**
* 直接复用注册处理程序
* 1.检测编辑表单提交过来的信息
* 2.对用户的提交信息进行检查并更新数据表
* 3.对错误进行处理
*/

$pageTitle = '修改处理';   //设置当前页面的标题
include 'public/header.php';  //引入页头

//判断当前请求方法是否为POST方法,然后对用户的注册请求进行处理
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    $erro = []; //创建一个数组,用来存放错误信息

    //检测邮箱
    if (empty($_POST['email'])) {
        $erro[] = '没有输入邮箱,请检查';
    }else{
        $email = trim($_POST['email']);
    }

    //如果错误信息数组为空,表示注册操作正确,将数据写入数据库
    if (empty($erro)){
        require 'public/connect.php';  //连接数据库
        //创建sql语句
        $sql = "UPDATE user SET `email`='{$email}' WHERE `id`= {$_GET['id']}";
        //执行插入操作
        if (mysqli_query($db,$sql)){
            echo '<script>alert("修改成功!")</script>';
            echo "<script language='javascript'>window.location='http://localhost/26/view.php'</script>";
        }else{
            echo '<script>alert("修改失败!")</script>';
        }
        //关闭连接
        mysqli_close($db);
    }else{
        //打印erro数组
        foreach ($erro as $message) {
            echo '<h3 style="color:red">'.$message.'</h3>'; //输出错误信息
        }
    }

}

include 'public/footer.php';  //导入公共尾部

6、执行删除操作的页面delete.php文件代码如下:

<?php
require 'public/connect.php';  //连接数据库

//创建查询语句
$sql = "DELETE FROM user WHERE id=".$_GET['id'];

echo '<script>alert("确定要删除吗?")</script>';

//删除操作
if (mysqli_query($db,$sql)) {
    echo '<script>alert("成功删除了'.mysqli_affected_rows($db).'条记录")</script>';
    echo "<script language='javascript'>window.location='http://localhost/26/view.php'</script>";
}else {
    echo '<script>alert("删除失败'.mysqli_error($db).'")</script>';
    echo "<script language='javascript'>window.location='http://localhost/26/view.php'</script>";
}
mysqli_close($db);


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议