目录
MySQL建表指令
主页面展示
主页面源代码如下
增:添加学生信息
添加html如下
html:主要用于显示网页内容
成功添加后回显 编辑
增加php如下
删:删除学生信息
删除html如下
成功删除后回显
删除php如下
改:修改学生信息
修改html如下
修改php如下
查:查看学生信息
查看html如下
成功查看后回显
查看php如下
问题和解决方法
本次基于数据库的应用设计基于学生信息管理系统实现增、删、改、查等基本功能首先建立student数据库,然后建立了学生基本信息表
MySQL建表指令
CREATE TABLE student (
学号 VARCHAR(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci NOT NULL,
姓名 VARCHAR(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci NOT NULL,
性别 VARCHAR(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci NOT NULL,
出生日期 DATE NOT NULL,
院系 VARCHAR(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci NOT NULL
);
主页面展示
主页面源代码如下
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>学生基本信息管理系统</title>
<style>
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background-color: #eef2f3;
color: #333;
text-align: center;
padding: 50px;
margin: 0;
}
h2 {
color: #007BFF;
margin-bottom: 20px;
font-size: 2.5em;
}
h3 {
color: #555;
font-size: 1.8em;
margin: 30px 0 15px;
}
a {
display: inline-block;
width: 220px;
margin: 15px auto;
padding: 15px 0;
background-color: #007BFF;
color: #fff;
text-decoration: none;
border-radius: 25px;
font-size: 1.1em;
transition: background-color 0.3s ease, transform 0.2s ease;
box-shadow: 0 4px 8px rgba(0, 123, 255, 0.2);
}
a:hover {
background-color: #0056b3;
transform: translateY(-2px);
box-shadow: 0 6px 12px rgba(0, 86, 179, 0.3);
}
a:active {
transform: translateY(0);
box-shadow: 0 2px 4px rgba(0, 123, 255, 0.2);
}
footer {
margin-top: 30px;
font-size: 0.9em;
color: #777;
}
</style>
</head>
<body>
<h2>学生基本信息管理系统</h2><br>
<h3>学生管理</h3>
<a href="insertS.html">添加学生信息</a>
<a href="seekS.html">查看学生信息</a>
<a href="updateS.html">修改学生信息</a>
<a href="deletes.html">删除学生信息</a>
<h3>管理员管理</h3>
<a href="insertA.html">添加管理员</a>
<a href="seekA.html">查看管理员</a>
<footer>
© xxx | 版权所有
</footer>
</body>
</html>
增:添加学生信息
添加html如下
html:主要用于显示网页内容
<?php
$con = mysqli_connect("localhost:3306", "root", "123456");
if (!mysqli_select_db($con, "student")) { // 判断是否连接成功
echo "连接 student 数据库出错"; // 输出连接失败信息
exit; // 退出程序
} else {
echo "连接 student 数据库成功\n";
}
mysqli_query($con, "set names utf8"); // 设置utf-8字符集
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>添加学生信息</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
margin: 0;
padding: 20px;
}
h3 {
text-align: center;
color: #333;
}
form {
background-color: #fff;
padding: 20px;
border-radius: 5px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
max-width: 400px;
margin: 0 auto;
}
label {
display: block;
margin: 10px 0 5px;
color: #555;
}
input[type="text"] {
width: calc(100% - 20px);
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
}
input[type="submit"] {
background-color: #5cb85c;
color: white;
border: none;
padding: 10px 15px;
border-radius: 4px;
cursor: pointer;
font-size: 16px;
width: 100%;
margin-top: 10px;
}
input[type="submit"]:hover {
background-color: #4cae4c;
}
</style>
</head>
<body>
<h3>添加学生信息</h3>
<form name="insertS" method="post" action="insertS.php">
<label for="学号">学号:</label>
<input type="text" name="学号" id="学号" required>
<label for="姓名">姓名:</label>
<input type="text" name="姓名" id="姓名" required>
<label for="性别">性别:</label>
<input type="text" name="性别" id="性别" required>
<label for="出生年月">出生年月:</label>
<input type="text" name="出生年月" id="出生年月" required>
<label for="院系">院系:</label>
<input type="text" name="院系" id="院系" required>
<input type="submit" value="提交">
</form>
</body>
</html>
成功添加后回显
增加php如下
<?php
$con=mysqli_connect("localhost:3306","root","123456");
if(!mysqli_select_db($con,"student")) //判断是否连接成功
{ echo "连接 student 数据库出错"; //输出连接失败信息
exit; //退出程序
}
else echo "连接 student 数据库成功\n";
mysqli_query($con,"set names utf8"); //设置utf-8字符集
mysqli_query($con,"set names utf8"); //设置中文字符集 utf8
$学号=$_POST["学号"];
$姓名=$_POST["姓名"];
$性别=$_POST["性别"];
$出生年月=$_POST["出生年月"];
$院系=$_POST["院系"];
$q="INSERT INTO 学生基本信息 VALUES
('$学号','$姓名','$性别','$出生年月','$院系')";
if(mysqli_query($con,$q))
{
echo "新学生记录已经成功加入到学生基本信息中";
//header("Location:sindex.php"); // 插入数据成功后,进行重定向到首页
//exit; // 确保重定向后立即退出脚本
}
else
{
echo "添加记录不成功";
//header("Location:indexA.html"); // 插入数据成功后,进行重定向到首页
//exit; // 确保重定向后立即退出脚本
}
mysqli_close($con);
?>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>学生信息记录添加-反馈</title>
</head>
<body>
<br>
<a href="sindex.html">返回</a>
</body>
</html>
删:删除学生信息
删除html如下
<?php
$con = mysqli_connect("localhost:3306", "root", "123456");
if (!mysqli_select_db($con, "student")) { // 判断是否连接成功
echo "连接 student 数据库出错\n"; // 输出连接失败的信息
exit; // 退出程序
} else {
echo "连接 student 数据库成功\n";
}
mysqli_query($con, "set names utf8"); // 设置中文字符集 utf8
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>删除学生信息</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
margin: 0;
padding: 20px;
}
h3 {
text-align: center;
color: #333;
}
form {
background-color: #fff;
padding: 20px;
border-radius: 5px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
max-width: 400px;
margin: 20px auto;
}
label {
display: block;
margin: 10px 0 5px;
color: #555;
}
input[type="text"] {
width: calc(100% - 20px);
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
}
input[type="submit"] {
background-color: #dc3545; /* Red color for delete action */
color: white;
border: none;
padding: 10px 15px;
border-radius: 4px;
cursor: pointer;
font-size: 16px;
width: 100%;
margin-top: 10px;
}
input[type="submit"]:hover {
background-color: #c82333; /* Darker red color on hover */
}
</style>
</head>
<body>
<h3>删除学生信息</h3>
<form name="seekS" method="post" action="deleteS.php">
<label for="学号">学号:</label>
<input type="text" name="学号" id="学号" required>
<input type="submit" value="提交">
</form>
</body>
</html>
成功删除后回显
删除php如下
<?php
$con=mysqli_connect("localhost:3306","root","123456");
if(!mysqli_select_db($con,"student")) //判断是否连接成功
{ echo "连接 student 数据库出错\n"; //输出连接失败的信息
exit; //退出程序
}
else echo "连接 student 数据库成功\n";
mysqli_query($con,"set names utf8"); //设置utf-8字符集
$学号=$_POST["学号"];
$q="DELETE FROM 学生基本信息 WHERE 学号='$学号'";
if(mysqli_query($con,$q))
echo "学生相关信息删除成功";
else
echo "学生相关信息删除失败";
mysqli_close($con);
?>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>学生信息记录删除-反馈</title>
</head>
<body>
<br>
<a href="sindex.html">返回</a>
</body>
</html>
改:修改学生信息
修改html如下
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>修改学生信息</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
}
form {
margin-top: 20px;
}
label {
display: block;
margin: 10px 0 5px;
}
input[type="text"] {
width: 300px;
padding: 10px;
margin-bottom: 15px;
}
input[type="submit"] {
padding: 10px 15px;
background-color: #4CAF50;
color: white;
border: none;
cursor: pointer;
}
input[type="submit"]:hover {
background-color: #45a049;
}
</style>
</head>
<body>
<h2>修改学生信息</h2>
<form name="modifyS" method="post" action="updateS.php">
学号:<input type="text" name="学号" required><br>
<input type="submit" value="查找学生信息">
</form>
</body>
</html>
修改php如下
<?php
// 连接到 MySQL 数据库
$con = mysqli_connect("localhost:3306", "root", "123456");
if (!$con) {
die("连接数据库失败: " . mysqli_connect_error());
}
// 选择数据库
if (!mysqli_select_db($con, "student")) {
echo "连接 student 数据库出错";
exit;
}
// 设置字符集为 utf8
mysqli_query($con, "set names utf8");
// 检查表单是否通过 POST 方法提交
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// 获取表单数据并进行转义以防止 SQL 注入
$studentId = mysqli_real_escape_string($con, $_POST['学号']);
$name = mysqli_real_escape_string($con, $_POST['姓名']);
$gender = mysqli_real_escape_string($con, $_POST['性别']);
$birthDate = mysqli_real_escape_string($con, $_POST['出生年月']);
$department = mysqli_real_escape_string($con, $_POST['院系']);
// 更新数据的 SQL 语句
$sql = "UPDATE students SET 姓名='$name', 性别='$gender', 出生年月='$birthDate', 院系='$department' WHERE 学号='$studentId'";
// 执行更新操作并检查结果
if (mysqli_query($con, $sql)) {
echo "学生信息更新成功";
} else {
echo "更新记录出错: " . mysqli_error($con);
}
}
// 关闭数据库连接
mysqli_close($con);
?>
查:查看学生信息
查看html如下
<?php
$con = mysqli_connect("localhost:3306", "root", "123456");
if (!mysqli_select_db($con, "student")) { // 判断是否连接成功
echo "连接 student 数据库出错\n"; // 输出连接失败的信息
exit; // 退出程序
} else {
echo "连接 student 数据库成功\n";
}
mysqli_query($con, "set names utf8"); // 设置中文字符集 utf8
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>查看学生信息</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
margin: 0;
padding: 20px;
}
h3 {
text-align: center;
color: #333;
}
form {
background-color: #fff;
padding: 20px;
border-radius: 5px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
max-width: 400px;
margin: 20px auto;
}
label {
display: block;
margin: 10px 0 5px;
color: #555;
}
input[type="text"] {
width: calc(100% - 20px);
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
}
input[type="submit"] {
background-color: #007bff;
color: white;
border: none;
padding: 10px 15px;
border-radius: 4px;
cursor: pointer;
font-size: 16px;
width: 100%;
margin-top: 10px;
}
input[type="submit"]:hover {
background-color: #0056b3;
}
</style>
</head>
<body>
<h3>查询学生信息</h3>
<form name="seekS" method="post" action="seekS.php">
<label for="学号">学号:</label>
<input type="text" name="学号" id="学号" required>
<input type="submit" value="提交">
</form>
</body>
</html>
成功查看后回显
查看php如下
<?php
$con=mysqli_connect("localhost:3306","root","123456");
if(!mysqli_select_db($con,"student")) //判断是否连接成功
{ echo "连接 student 数据库出错\n"; //输出连接失败的信息
exit; //退出程序
}
else echo "连接 student 数据库成功\n";
mysqli_query($con,"set names utf8"); //设置utf-8字符集
$学号=$_POST["学号"];
$q="SELECT 姓名,性别,出生日期,院系 FROM 学生基本信息
WHERE 学号='$学号'";
$result=mysqli_query($con,$q);
if($result)
{
echo "信息查询成功<br>";
$p=mysqli_fetch_array($result,MYSQLI_BOTH);
if($p)
{
echo "姓名:".$p[0]."<br>";
echo "性别:".$p[1]."<br>";
echo "出生日期:".$p[2]."<br>";
echo "院系:".$p[3]."<br>";
}
else echo “该学生信息不存在”;
}
else echo "信息查询失败";
?>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>学生信息记录查看-反馈</title>
</head>
<body>
<br>
<a href="sindex.html">返回</a>
</body>
</html>
问题和解决方法
- 数据库连接问题
- 问题描述:在进行增、删、改、查操作时,多次出现无法连接到student数据库的情况,导致操作无法正常进行。
- 解决方法:仔细检查数据库连接代码,确保mysqli_connect函数中的参数正确,包括主机名、用户名和密码。同时,检查mysqli_select_db函数是否正确选择了要使用的数据库。通过逐步调试,发现是密码输入错误,修正后成功连接数据库。
- SQL 注入问题
- 问题描述:在用户输入数据进行数据库操作时,可能存在恶意用户输入 SQL 语句来破坏数据库的安全性。
- 解决方法:使用mysqli_real_escape_string函数对用户输入的数据进行转义,确保输入的数据不会被当作 SQL 语句执行,从而提高了数据库的安全性。