PHP 获取商品列表 API 函数:分页、搜索、安全编码
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()函数对中文进行编码转换。 - 确保数据库中的数据编码和传入数据的编码一致。
- 在传入 name 之前,使用
代码说明:
- 函数接受一个包含分页信息和搜索条件的数组
$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 著作权归作者所有。请勿转载和采集!