php实现人事管理系统
PHP 人事管理系统实现方案
数据库设计
人事管理系统需要存储员工信息、部门信息、考勤记录等数据。MySQL数据库设计示例:
CREATE TABLE departments (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
description TEXT
);
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE,
phone VARCHAR(20),
department_id INT,
position VARCHAR(100),
hire_date DATE,
salary DECIMAL(10,2),
FOREIGN KEY (department_id) REFERENCES departments(id)
);
CREATE TABLE attendance (
id INT AUTO_INCREMENT PRIMARY KEY,
employee_id INT,
date DATE,
check_in TIME,
check_out TIME,
status ENUM('present', 'absent', 'late', 'leave'),
FOREIGN KEY (employee_id) REFERENCES employees(id)
);
核心功能实现
员工管理模块
class EmployeeController {
public function addEmployee($data) {
$db = new Database();
$query = "INSERT INTO employees (name, email, phone, department_id, position, hire_date, salary)
VALUES (?, ?, ?, ?, ?, ?, ?)";
$params = [
$data['name'],
$data['email'],
$data['phone'],
$data['department_id'],
$data['position'],
$data['hire_date'],
$data['salary']
];
return $db->execute($query, $params);
}
public function getEmployees() {
$db = new Database();
$query = "SELECT e.*, d.name as department_name
FROM employees e
LEFT JOIN departments d ON e.department_id = d.id";
return $db->query($query);
}
}
考勤管理模块

class AttendanceController {
public function recordAttendance($employeeId, $date, $checkIn, $checkOut, $status) {
$db = new Database();
$query = "INSERT INTO attendance (employee_id, date, check_in, check_out, status)
VALUES (?, ?, ?, ?, ?)";
$params = [$employeeId, $date, $checkIn, $checkOut, $status];
return $db->execute($query, $params);
}
public function getMonthlyReport($employeeId, $month, $year) {
$db = new Database();
$query = "SELECT * FROM attendance
WHERE employee_id = ?
AND MONTH(date) = ?
AND YEAR(date) = ?";
$params = [$employeeId, $month, $year];
return $db->query($query, $params);
}
}
用户界面设计
员工列表页面示例
// employees.php
require_once 'controllers/EmployeeController.php';
$employeeController = new EmployeeController();
$employees = $employeeController->getEmployees();
foreach ($employees as $employee) {
echo "<tr>
<td>{$employee['name']}</td>
<td>{$employee['email']}</td>
<td>{$employee['department_name']}</td>
<td>{$employee['position']}</td>
<td>{$employee['hire_date']}</td>
</tr>";
}
安全措施
输入验证和防SQL注入

class Database {
public function execute($query, $params = []) {
$stmt = $this->pdo->prepare($query);
foreach ($params as $key => $value) {
$stmt->bindValue($key + 1, $value);
}
return $stmt->execute();
}
}
密码加密存储
function hashPassword($password) {
return password_hash($password, PASSWORD_BCRYPT);
}
function verifyPassword($password, $hash) {
return password_verify($password, $hash);
}
扩展功能建议
薪资计算模块
class PayrollController {
public function calculateSalary($employeeId, $month, $year) {
// 获取基本工资
// 计算考勤扣款
// 计算奖金
// 返回最终薪资
}
}
报表生成功能
class ReportGenerator {
public function generateEmployeeReport($employeeId) {
// 生成PDF或Excel格式的员工报告
}
}
实现完整的人事管理系统需要考虑用户权限管理、数据备份、系统日志等功能。建议使用MVC架构组织代码,采用Composer管理依赖,可以考虑集成现有的PHP框架如Laravel或Symfony来加速开发。






