php实现分数录入
分数录入的PHP实现方法
数据库表设计
创建存储分数的数据库表结构:

CREATE TABLE scores (
id INT AUTO_INCREMENT PRIMARY KEY,
student_name VARCHAR(50) NOT NULL,
subject VARCHAR(50) NOT NULL,
score DECIMAL(5,2) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
表单界面
构建分数录入的HTML表单:
<form action="save_score.php" method="post">
<label>学生姓名: <input type="text" name="student_name" required></label>
<label>科目:
<select name="subject" required>
<option value="数学">数学</option>
<option value="语文">语文</option>
<option value="英语">英语</option>
</select>
</label>
<label>分数: <input type="number" name="score" step="0.01" min="0" max="100" required></label>
<button type="submit">提交</button>
</form>
数据处理脚本
创建处理表单提交的PHP文件(save_score.php):
<?php
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database_name');
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 获取并验证表单数据
$student_name = htmlspecialchars($_POST['student_name']);
$subject = htmlspecialchars($_POST['subject']);
$score = floatval($_POST['score']);
// 验证分数范围
if ($score < 0 || $score > 100) {
die("分数必须在0-100之间");
}
// 准备SQL并执行
$stmt = $conn->prepare("INSERT INTO scores (student_name, subject, score) VALUES (?, ?, ?)");
$stmt->bind_param("ssd", $student_name, $subject, $score);
if ($stmt->execute()) {
echo "分数录入成功";
} else {
echo "错误: " . $stmt->error;
}
$stmt->close();
$conn->close();
?>
安全增强措施
- 使用预处理语句防止SQL注入
- 对用户输入进行过滤和验证
- 设置适当的HTML输入限制
- 考虑添加CSRF保护
扩展功能建议
- 添加批量导入功能(通过CSV或Excel文件)
- 实现分数修改和删除功能
- 添加用户权限控制
- 开发分数查询和统计功能
错误处理优化
// 更完善的错误处理示例
try {
// 数据库操作代码
} catch (Exception $e) {
error_log($e->getMessage());
header('HTTP/1.1 500 Internal Server Error');
echo "系统错误,请稍后再试";
exit;
}







