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,保存常量
// 连接数据库、设置字符集
$link = mysqli_connect('localhost', 'root', 'root', 'studb');
mysqli_set_charset($link, 'utf8');
?>
1.2. 创建入口文件index.html(连接数据库、查询数据)
//连接数据库
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);
?>
.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;}
学生信息管理系统 foreach ($data as $key => $value) { foreach ($value as $k => $v) { $arr[$k] = $v; } echo " echo " echo " echo " echo " echo " echo " echo " echo " echo " echo " // echo " // print_r($arr); // echo ""; } // 关闭连接 mysqli_close($link); ?>
编号
姓名
性别
年龄
学历
工资
奖金
籍贯
操作
";
";{$arr['id']} ";
{$arr['name']} ";
{$arr['sex']} ";
{$arr['age']} ";
{$arr['edu']} ";
{$arr['salary']} ";
{$arr['bonus']} ";
{$arr['city']} ";
";
";
function del (id) {
if (confirm("确定删除这个学生吗?")){
window.location = "action_del.php?id="+id;
}
}
1.2. 创建图片student.jpg(网页背景图)
页面如图:
2. 添加学生
2.1 创建文件addStudent.htmt
.box {display:table;margin:0 auto;}
h2 {text-align: center;}
.add {margin-bottom: 20px;}
添加学生 请选择-- 返回" > 重置"> 提交">
姓 名: 性 别:
年 龄: 学 历:
工 资: 奖 金: 籍 贯:
页面如图:
如果直接提交,不提交任何数据:
3秒后跳回首页:
2.2 创建处理增加新闻的服务端文件action_addStudent.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 "添加学生失败!
";
header('Refresh: 3; url=index.php'); //3s后跳转
}
3. 删除学生信息
点击删除按钮,通过服务端文件action_del.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进行修改处理
//连接数据库
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 "";
// var_dump($arr);
// echo "";
?>
.box {display:table;margin:0 auto;}
h2 {text-align: center;}
.add {margin-bottom: 20px;}
修改学生信息 echo "checked"; } ?> type="radio" name="sex" value="男">男 echo "checked"; } ?> type="radio" name="sex" value="女">女 echo "selected"; } ?> value="">--请选择-- echo "selected"; } ?> value="研究生">研究生 echo "selected"; } ?> value="本科">本科 echo "selected"; } ?> value="专科">专科 echo "selected"; } ?> value="高中">高中 echo "selected"; } ?> value="初中">初中 返回" > 提交">
编 号: " readonly="readonly"> 姓 名: "> 性 别:
年 龄: "> 学 历:
工 资: "> 奖 金: "> 籍 贯: ">
页面如下:
4.2 通过服务端文件action_editStudent.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 "修改学生失败!
";
header('Refresh: 3; url=index.php'); //3s后跳转
}
如果将修改的姓名改为空,提交:
输出失败提示:
3秒后跳回首页: