php人员管理怎么实现
人员管理系统的实现方法
在PHP中实现人员管理系统通常涉及数据库设计、用户界面开发、权限控制和数据操作等功能。以下是一个基本的实现框架:
数据库设计
创建数据库表存储人员信息,常见字段包括:id(主键)、name、email、phone、department、position等。示例SQL:
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE,
phone VARCHAR(20),
department VARCHAR(50),
position VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
连接数据库 使用PDO或MySQLi扩展连接数据库:
$dsn = 'mysql:host=localhost;dbname=hr_db';
$user = 'username';
$pass = 'password';
try {
$pdo = new PDO($dsn, $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
die("Connection failed: " . $e->getMessage());
}
CRUD操作 实现基本的增删改查功能。示例添加员工:
function addEmployee($pdo, $name, $email, $phone, $dept, $position) {
$stmt = $pdo->prepare("INSERT INTO employees (name, email, phone, department, position) VALUES (?, ?, ?, ?, ?)");
$stmt->execute([$name, $email, $phone, $dept, $position]);
return $pdo->lastInsertId();
}
用户界面 创建HTML表单和展示页面。示例列表页:

$stmt = $pdo->query("SELECT * FROM employees");
$employees = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($employees as $emp) {
echo "<tr>
<td>{$emp['name']}</td>
<td>{$emp['email']}</td>
<td>{$emp['phone']}</td>
<td>{$emp['department']}</td>
<td>
<a href='edit.php?id={$emp['id']}'>Edit</a>
<a href='delete.php?id={$emp['id']}' onclick='return confirm(\"Are you sure?\")'>Delete</a>
</td>
</tr>";
}
高级功能实现
分页处理 在大数据量时实现分页:
$perPage = 10;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$offset = ($page - 1) * $perPage;
$stmt = $pdo->prepare("SELECT * FROM employees LIMIT :offset, :perPage");
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
$stmt->bindParam(':perPage', $perPage, PDO::PARAM_INT);
$stmt->execute();
搜索功能 添加姓名或部门搜索:
$search = isset($_GET['search']) ? $_GET['search'] : '';
$sql = "SELECT * FROM employees WHERE name LIKE ? OR department LIKE ?";
$stmt = $pdo->prepare($sql);
$stmt->execute(["%$search%", "%$search%"]);
权限控制 实现基于角色的访问控制:

session_start();
function checkPermission($requiredRole) {
if ($_SESSION['user_role'] !== $requiredRole) {
header('Location: unauthorized.php');
exit;
}
}
// 在管理页面调用
checkPermission('admin');
安全注意事项
输入验证 对所有用户输入进行过滤:
$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
密码哈希 存储密码时使用bcrypt:
$password = password_hash($_POST['password'], PASSWORD_BCRYPT);
防SQL注入 始终使用预处理语句:
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");
$stmt->execute([$_POST['email']]);
以上实现可以根据具体需求进行扩展,如添加考勤管理、薪资计算等模块。






