PHP+MySQL 实现数据库增删改查

 

通过学生信息管理系统,熟悉PHP+MySQL增删改查,本文介绍了学生信息管理系统。

 

此项目运行环境:Apache2.4.41    PHP7.3.8 

 

查看演示

地址一:http://student.lgcweb.cn/

备用地址:http://39.105.0.128/PHP/php_mysql_student/

项目地址

https://pan.baidu.com/s/1OQDBoRqOBMH7gBdUF_lcBQ

 

MySQL数据库创建

建库语句

# 创建数据库

CREATE DATABASE `studb`;

 

# 使用数据库

USE `studb`;                

 

#创建数据表

CREATE TABLE `student` (

  `id` int(10) NOT NULL AUTO_INCREMENT,

  `name` varchar(32) DEFAULT NULL COMMENT '姓名',

  `sex` char(2) DEFAULT NULL COMMENT '性别',

  `age` varchar(6) DEFAULT NULL COMMENT '年龄',

  `edu` varchar(12) DEFAULT NULL COMMENT '学历',

  `salary` decimal(10,2) DEFAULT NULL COMMENT '工资',

  `bonus` decimal(10,2) DEFAULT NULL COMMENT '奖金',

  `city` varchar(32) DEFAULT NULL COMMENT '籍贯',

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

#插入测试数据

INSERT INTO `student` VALUES ('1', '测试1', '', '22', '大专', '4500.00', '1000.00', '广东韶关');

INSERT INTO `student` VALUES ('2', '测试2', '', '20', '本科', '5000.00', '500.00', '湖南长沙');

INSERT INTO `student` VALUES ('3', '前端1', '', '22', '大专', '5000.00', '700.00', '湖南郴州');

INSERT INTO `student` VALUES ('4', '前端2', '', '25', '本科', '8000.00', '200.00', '湖南娄底');

INSERT INTO `student` VALUES ('5', '后台', '', '22', '专科', '7000.00', '200.00', '湖南郴州');

 

 

 

创建一个学生列表的数据库:

 

 

1. 查询数据库

1.1. 创建文件conn.php,保存常量

<?php

// 连接数据库、设置字符集

$link = mysqli_connect('localhost', 'root', 'root', 'studb');

mysqli_set_charset($link, 'utf8');

 

?>

 

1.2. 创建入口文件index.html(连接数据库、查询数据)

<?php

//连接数据库

include 'conn.php';

 

//编写查询sql语句

$sql = 'SELECT * FROM `student`';

//执行查询操作、处理结果集

$result = mysqli_query($link, $sql);

if (!$result) {

    exit('查询sql语句执行失败。错误信息:'.mysqli_error($link));  // 获取错误信息

}

$data = mysqli_fetch_all($result, MYSQLI_ASSOC);

 

//编写查询数量sql语句

$sql = 'SELECT COUNT(*) FROM `student`';

//执行查询操作、处理结果集

$n = mysqli_query($link, $sql);

if (!$n) {

    exit('查询数量sql语句执行失败。错误信息:'.mysqli_error($link));  // 获取错误信息

}

$num = mysqli_fetch_assoc($n);

//将一维数组的值转换为一个字符串

$num = implode($num);

 

 

?>

 

<html>

<head>

    <meta charset="UTF-8">

    <title>学生信息管理系统</title>

</head>

<style type="text/css">

.wrapper {width: 1000px;margin: 20px auto;}

h1 {text-align: center;}

.add {margin-bottom: 20px;}

.add a {text-decoration: none;color: #fff;background-color: #00CCFF;padding: 6px;border-radius: 5px;}

td {text-align: center;}

</style>

<body background="student.jpg">

    <div class="wrapper">

       <h1>学生信息管理系统</h1>

       <div class="add">

           <a href="addStudent.html">添加学生</a>&nbsp;&nbsp;&nbsp;共<?php echo $num; ?>个学生

       </div>

       <table width="960" border="1">

           <tr>

              <th>编号</th>

              <th>姓名</th>

              <th>性别</th>

              <th>年龄</th>

              <th>学历</th>

              <th>工资</th>

              <th>奖金</th>

              <th>籍贯</th>

              <th>操作</th>

           </tr>

           <?php

             

   

              foreach ($data as $key => $value) {

                  foreach ($value as $k => $v) {

                     $arr[$k] = $v;

                  }

              echo "<tr>";

              echo "<td>{$arr['id']}</td>";

              echo "<td>{$arr['name']}</td>";

              echo "<td>{$arr['sex']}</td>";

              echo "<td>{$arr['age']}</td>";

              echo "<td>{$arr['edu']}</td>";

              echo "<td>{$arr['salary']}</td>";

              echo "<td>{$arr['bonus']}</td>";

              echo "<td>{$arr['city']}</td>";

              echo "<td>

                         <a href='javascript:del({$arr['id']})'>删除</a>

                         <a href='editStudent.php?id={$arr['id']}'>修改</a>

                    </td>";

              echo "</tr>";

              // echo "<pre>";

              // print_r($arr);

              // echo "</pre>";

             

             

              }

              // 关闭连接

              mysqli_close($link);

          

 

             

             

           ?>

          

       </table>  

    </div>

   

    <script type="text/javascript">

       function del (id) {

           if (confirm("确定删除这个学生吗?")){

              window.location = "action_del.php?id="+id;

           }

       }

    </script>

 

 

 

</body>

</html>

 

 

 

1.2. 创建图片student.jpg(网页背景图)

页面如图:

2. 添加学生

2.1 创建文件addStudent.htmt

 

<!doctype html>

<html>

  <head>

    <meta charset="UTF-8">

    <title>学生信息管理系统</title>

   <style type="text/css">

    .box {display:table;margin:0 auto;}

    h2 {text-align: center;}

    .add {margin-bottom: 20px;}

</style>

  </head>

  <body background="student.jpg">

    <!--输出定制表单-->

    <div class="box">

            <h2>添加学生</h2>

      <div class="add">

        <form action="action_addStudent.php" method="post" enctype="multipart/form-data">

          <table border="1">

          <tr><th>姓  名:</th><td><input  type="text"  name="name"  size="25"  value=""></td></tr>

          <tr><th>性  别:</th><td>

              <label><input checked  type="radio"  name="sex"  value="男">男</label>

              <label><input   type="radio"  name="sex"  value="女">女</label>

          </td></tr>

          <tr><th>年  龄:</th><td><input  type="text"  name="age"  size="25"  value=""></td></tr>

          <tr><th>学  历:</th><td>

              <select  name="edu" >

                  <option selected value="">--请选择--</option>

                  <option  value="研究生">研究生</option>

                  <option  value="本科">本科</option>

                  <option  value="专科">专科</option>

                  <option  value="高中">高中</option>

                  <option  value="初中">初中</option>

              </select>

          </td></tr>

          <tr><th>工  资:</th><td><input  type="text"  name="salary"  size="25"  value=""></td></tr>

          <tr><th>奖  金:</th><td><input  type="text"  name="bonus"  size="25"  value=""></td></tr>

          <tr><th>籍  贯:</th><td><input  type="text"  name="city"  size="25"  value=""></td></tr>

          <tr><th></th><td>

                <input  type="button"  onClick="javascript :history.back(-1);"  value="返回" >&nbsp;&nbsp;&nbsp;

                <input  type="reset"  value="重置">&nbsp;&nbsp;&nbsp;

                <input  type="submit"  value="提交">&nbsp;&nbsp;&nbsp;

          </td></tr>

          </table>       

        </form>

      </div>

    </div>

  </body>

</html>

 

 

页面如图:

如果直接提交,不提交任何数据:

3秒后跳回首页:

2.2 创建处理增加新闻的服务端文件action_addStudent.php

<?php

//连接数据库

include 'conn.php';

 

// 获取增加的学生信息

$name = $_POST['name'];

$sex = $_POST['sex'];

$age = $_POST['age'];

$edu = $_POST['edu'];

$salary = $_POST['salary'];

$bonus = $_POST['bonus'];

$city = $_POST['city'];

 

        //编写预处理sql语句

        $sql = "INSERT INTO `student` VALUES(NULL, ?, ?, ?, ?, ?, ?, ?)";

        //预处理SQL模板

        $stmt = mysqli_prepare($link, $sql);

        // 参数绑定,并为已经绑定的变量赋值

        mysqli_stmt_bind_param($stmt, 'sssssss', $name, $sex, $age, $edu, $salary, $bonus, $city);

       

 

        if ($name) {

               // 执行预处理(第1次执行)

               $result = mysqli_stmt_execute($stmt);

               //关闭连接

               mysqli_close($link);

 

               if ($result) {

               //添加学生成功

                       //跳转到首页

                       header("Location:index.php");

               }else{

                       exit('添加学生sql语句执行失败。错误信息:' . mysqli_error($link));

               }

        }else{

               //添加学生失败

               //输出提示,跳转到首页

               echo "添加学生失败!<br><br>";

               header('Refresh: 3; url=index.php');  //3s后跳转

 

       

        }

 

 

 

3. 删除学生信息

点击删除按钮,通过服务端文件action_del.php进行删除处理

<?php

//连接数据库

include 'conn.php';

 

$id = $_GET['id'];

//删除指定数据 

//编写删除sql语句

$sql = "DELETE FROM student WHERE id={$id}";

//执行查询操作、处理结果集

$result = mysqli_query($link, $sql);

if (!$result) {

    exit('查询数据sql语句执行失败。错误信息:'.mysqli_error($link));  // 获取错误信息

}

 

// 删除完跳转到首页

header("Location:index.php"); 

 

页面如图:

js弹出提示信息:

4. 修改学生信息

4.1 点击修改按钮,跳转到文件editStudent.php进行修改处理

<?php

//连接数据库

include 'conn.php';

 

//获取id

$id = $_GET['id'];

//编写查询sql语句

$sql = "SELECT * FROM `student` WHERE `id`=$id";

//执行查询操作、处理结果集

$result = mysqli_query($link, $sql);

if (!$result) {

    exit('查询sql语句执行失败。错误信息:'.mysqli_error($link));  // 获取错误信息

}

$data = mysqli_fetch_all($result, MYSQLI_ASSOC);

 

//将二维数数组转化为一维数组

foreach ($data as $key => $value) {

  foreach ($value as $k => $v) {

    $arr[$k]=$v;

  }

}

 

// echo "<pre>";

// var_dump($arr);

// echo "</pre>";

 

?>

 

<html>

  <head>

    <meta charset="UTF-8">

    <title>学生信息管理系统</title>

   <style type="text/css">

    .box {display:table;margin:0 auto;}

    h2 {text-align: center;}

    .add {margin-bottom: 20px;}

</style>

  </head>

  <body background="student.jpg">

    <!--输出定制表单-->

    <div class="box">

            <h2>修改学生信息</h2>

      <div class="add">

        <form action="action_editStudent.php" method="post" enctype="multipart/form-data">

          <table border="1">

          <tr><th>编  号:</th><td><input  type="text"  name="id"  size="5"  value="<?php echo $arr["id"] ?>" readonly="readonly"></td></tr>

          <tr><th>姓  名:</th><td><input  type="text"  name="name"  size="25"  value="<?php echo $arr["name"] ?>"></td></tr>

          <tr><th>性  别:</th><td>

              <label><input <?php if ($arr["sex"] == "男") {

                echo "checked";

              } ?>  type="radio"  name="sex"  value="男">男</label>

              <label><input  <?php if ($arr["sex"] == "女") {

                echo "checked";

              } ?>  type="radio"  name="sex"  value="女">女</label>

          </td></tr>

          <tr><th>年  龄:</th><td><input  type="text"  name="age"  size="25"  value="<?php echo $arr["age"] ?>"></td></tr>

          <tr><th>学  历:</th><td>

              <select  name="edu" >

                  <option <?php if (!$arr["edu"]) {

                echo "selected";

              } ?> value="">--请选择--</option>

                  <option  <?php if ($arr["edu"] == "研究生") {

                echo "selected";

              } ?>  value="研究生">研究生</option>

                  <option  <?php if ($arr["edu"] == "本科") {

                echo "selected";

              } ?>  value="本科">本科</option>

                  <option  <?php if (!$arr["edu"] == "专科") {

                echo "selected";

              } ?>  value="专科">专科</option>

                  <option  <?php if (!$arr["edu"] == "高中") {

                echo "selected";

              } ?>  value="高中">高中</option>

                  <option  <?php if (!$arr["edu"] == "初中") {

                echo "selected";

              } ?>  value="初中">初中</option>

              </select>

          </td></tr>

          <tr><th>工  资:</th><td><input  type="text"  name="salary"  size="25"  value="<?php echo $arr["salary"] ?>"></td></tr>

          <tr><th>奖  金:</th><td><input  type="text"  name="bonus"  size="25"  value="<?php echo $arr["bonus"] ?>"></td></tr>

          <tr><th>籍  贯:</th><td><input  type="text"  name="city"  size="25"  value="<?php echo $arr["city"] ?>"></td></tr>

          <tr><th></th><td>

                <input  type="button"  onClick="javascript :history.back(-1);"  value="返回" >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

                <input  type="submit"  value="提交">

          </td></tr>

          </table>       

        </form>

      </div>

    </div>

  </body>

</html>

 

页面如下:

 

 4.2 通过服务端文件action_editStudent.php进行修改处理

<?php

//连接数据库

include 'conn.php';

 

// 获取修改后的学生信息

$id = $_POST['id'];

$name = $_POST['name'];

$sex = $_POST['sex'];

$age = $_POST['age'];

$edu = $_POST['edu'];

$salary = $_POST['salary'];

$bonus = $_POST['bonus'];

$city = $_POST['city'];

 

 

      //编写预处理sql语句

      $sql = "UPDATE `student`

                  SET

                       `name`= ?,

                       `sex`= ?,

                       `age`= ?,

                       `edu`= ?,

                       `salary`= ?,

                       `bonus`= ?,

                       `city`= ?

                  WHERE `id`= ?";

 

      //预处理SQL模板

      $stmt = mysqli_prepare($link, $sql);

      // 参数绑定,并为已经绑定的变量赋值

      mysqli_stmt_bind_param($stmt, 'ssssssss', $name, $sex, $age, $edu, $salary, $bonus, $city, $id);

     

 

      if ($name) {

            // 执行预处理(第1次执行)

            $result = mysqli_stmt_execute($stmt);

            //关闭连接

            mysqli_close($link);

 

            if ($result) {

                //修改学生成功

                  //跳转到首页

                  header("Location:index.php");

            }else{

                  exit('修改学生信息sql语句执行失败。错误信息:' . mysqli_error($link));

            }

      }else{

            //修改学生失败

            //输出提示,跳转到首页

            echo "修改学生失败!<br><br>";

            header('Refresh: 3; url=index.php');  //3s后跳转

 

         

      }

 

 

如果将修改的姓名改为空,提交:

 

 

输出失败提示:

 

3秒后跳回首页:

 

 

 

 

 

 

           

Logo

快速构建 Web 应用程序

更多推荐