You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP开发中如何将CRUD类全局化适配不同页面使用?

解决方案

第一步:抽离全局数据库初始化文件

把重复的数据库连接逻辑抽到公共文件中,所有需要操作数据库的页面直接引入即可,无需重复写连接代码。

<?php
// common.php 全局公共文件
include('class/mysql_crud.php');
$db = new Database();
$db->connect();
// 全局范围内可直接调用$db对象
?>

第二步:创建通用数据库操作入口,替代分散的insert.php等文件

你不需要为每个页面/每个表单独创建操作文件,也不需要写逐页面匹配的条件判断,仅需做参数化通用处理+安全校验即可。
创建db_action.php作为所有数据库操作的统一入口:

<?php
// 引入公共文件,直接获取已完成连接的db对象
include 'common.php';

// 配置允许操作的表名白名单,防止恶意传入非法表名
$allow_tables = [
    'CRUDClass',
    'user',
    'article',
    // 后续新增表只需要在这里添加表名即可
];

// 接收请求参数
$action = $_POST['action'] ?? ''; // 操作类型:insert/update/delete/select
$table = $_POST['table'] ?? '';

// 基础参数校验
if (!in_array($table, $allow_tables) || empty($action)) {
    exit(json_encode(['code' => 400, 'msg' => '参数非法']));
}

switch ($action) {
    case 'insert':
        $insert_data = $_POST['data'] ?? [];
        // 统一对插入数据做转义处理
        foreach ($insert_data as $k => $v) {
            $insert_data[$k] = $db->escapeString($v);
        }
        $db->insert($table, $insert_data);
        $res = $db->getResult();
        echo json_encode(['code' => 200, 'data' => $res]);
        break;
    case 'update':
        // 补充update逻辑即可,需额外接收where条件参数,实现逻辑和insert一致
        break;
    case 'delete':
        // 补充delete逻辑即可
        break;
    case 'select':
        // 补充查询逻辑即可
        break;
    default:
        exit(json_encode(['code' => 400, 'msg' => '不支持的操作类型']));
}
?>

第三步:各页面调用方式

需要操作数据库的页面,不管是表单提交还是AJAX请求,直接调用这个统一入口即可,比如新增数据的AJAX请求示例:

$.post('db_action.php', {
    action: 'insert',
    table: 'CRUDClass',
    data: {
        name: 'Name 5',
        email: 'name5@email.com'
    }
}, function(res) {
    console.log(res);
});

注意事项

  • 上述示例中接收的data参数建议也补充字段白名单校验,比如操作CRUDClass表时仅允许传入name、email两个字段,避免恶意用户传入非法字段篡改数据
  • 生产环境使用时需要补充身份权限校验,仅允许已登录的授权用户调用对应数据库操作

内容的提问来源于stack exchange,提问作者Abdulrahman Mushref

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:54:06