PHP+MySQL实现数据库增删改查
通过学生信息管理系统,熟悉PHP+MySQL增删改查,本文介绍了学生信息管理系统。
此项目运行环境:Apache2.4.41 PHP7.3.8
查看演示
地址一:/
备用地址:http://39.105.0.128/PHP/php_mysql_student/
项目地址
/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> 共<?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="返回" >
<input type="reset" value="重置">
<input type="submit" value="提交">
</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="返回" >
<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秒后跳回首页: