public static function goodsList($Data) {
    $DB = SQL::DB(); // 假设 $DB 已经定义为数据库连接对象
    $page = isset($Data['page']) ? intval($Data['page']) : 1;
    $limit = isset($Data['limit']) ? intval($Data['limit']) : 10;
    $offset = ($page - 1) * $limit;
    $name = isset($Data['name']) ? $DB->escape_string($Data['name']) : '';
    $result = $DB->select('goods', ['gid', 'money', 'name', 'note'], ['name[~]' => $name, 'LIMIT' => [$offset, $limit]]);
    if ($result) {
        $total = $DB->count('goods', $name ? ['name[~]' => $name] : []);
        $totalPages = ceil($total / $limit);
        return ['data' => $result, 'total' => $total, 'totalPages' => $totalPages];
    } else {
        return false;
    }
}

传入 name 时出现问题的原因和解决方法

当传入中文名称进行搜索时,可能会出现乱码或无法查询到数据的情况,这是因为编码不一致造成的。

  • 解决方法:
    • 在传入 name 之前,使用 urlencode() 函数对中文进行编码转换。
    • 确保数据库中的数据编码和传入数据的编码一致。

代码说明:

  • 函数接受一个包含分页信息和搜索条件的数组 $Data 作为参数。
  • 使用 intval() 函数将页码和每页数量转换为整数,防止非法输入。
  • 使用 $DB->escape_string() 函数对搜索条件进行转义,防止 SQL 注入攻击。
  • 使用 $DB->select() 函数从 goods 表中获取数据,并使用 LIMIT 子句实现分页功能。
  • 使用 $DB->count() 函数统计符合搜索条件的商品数量。
  • 返回一个包含数据、总数和总页数的数组。

注意:

  • 该函数假设 $DB 已经定义为数据库连接对象。
  • 实际使用时,请根据实际情况调整数据库表名、字段名和搜索条件。
  • 为了保证数据安全,建议在使用 $DB->select()$DB->count() 函数之前,使用 $DB->escape_string() 函数对所有参数进行转义。

原文地址: https://www.cveoy.top/t/topic/mEAO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录