php实现crud
PHP实现CRUD操作
CRUD(Create, Read, Update, Delete)是数据库应用中最基本的操作。以下是使用PHP和MySQL实现CRUD的详细方法。
数据库连接
使用PDO(PHP Data Objects)连接MySQL数据库:
$host = 'localhost';
$dbname = 'your_database';
$username = 'your_username';
$password = 'your_password';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Connection failed: " . $e->getMessage());
}
创建(Create)
向数据库表中插入新记录:
$name = $_POST['name'];
$email = $_POST['email'];
$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':name', $name);
$stmt->bindParam(':email', $email);
if ($stmt->execute()) {
echo "Record created successfully";
} else {
echo "Error creating record";
}
读取(Read)
从数据库表中获取记录:
$sql = "SELECT * FROM users";
$stmt = $pdo->query($sql);
if ($stmt->rowCount() > 0) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "ID: " . $row['id'] . " - Name: " . $row['name'] . " - Email: " . $row['email'] . "<br>";
}
} else {
echo "No records found";
}
更新(Update)
修改数据库表中的记录:
$id = $_POST['id'];
$newName = $_POST['new_name'];
$newEmail = $_POST['new_email'];
$sql = "UPDATE users SET name = :name, email = :email WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':name', $newName);
$stmt->bindParam(':email', $newEmail);
$stmt->bindParam(':id', $id);
if ($stmt->execute()) {
echo "Record updated successfully";
} else {
echo "Error updating record";
}
删除(Delete)
从数据库表中删除记录:
$id = $_POST['id'];
$sql = "DELETE FROM users WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id', $id);
if ($stmt->execute()) {
echo "Record deleted successfully";
} else {
echo "Error deleting record";
}
安全注意事项
使用预处理语句防止SQL注入攻击。所有用户输入都应通过预处理语句处理,避免直接拼接SQL查询。
表单应包含CSRF令牌验证,确保请求来自合法来源。对用户输入进行验证和过滤,使用PHP的filter_var函数:
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
if (!$email) {
die("Invalid email format");
}
完整示例结构
典型的CRUD应用包含以下文件结构:
- index.php(显示记录列表)
- create.php(创建新记录表单和处理)
- edit.php(编辑记录表单和处理)
- delete.php(删除记录处理)
每个操作应有单独的表单和处理逻辑,遵循MVC(模型-视图-控制器)模式分离业务逻辑和显示逻辑。







