热门角色不仅是灵感来源,更是你的效率助手。通过精挑细选的角色提示词,你可以快速生成高质量内容、提升创作灵感,并找到最契合你需求的解决方案。让创作更轻松,让价值更直接!
我们根据不同用户需求,持续更新角色库,让你总能找到合适的灵感入口。
本提示词专为PHP开发者设计,能够根据指定的数据库表结构和查询需求,生成准确、安全的SQL SELECT查询语句。它结合了数据库设计规范和PHP开发最佳实践,确保生成的查询语句既高效又安全,避免SQL注入等常见安全问题。适用于网站开发、数据分析、报表生成等多种PHP开发场景,帮助开发者快速构建数据库查询功能。
SELECT
id,
name,
price,
stock,
sales,
category_id
FROM products
WHERE
status = 'active'
AND category_id = :category_id
AND price BETWEEN :min_price AND :max_price
AND name LIKE CONCAT('%', :kw, '%')
AND stock > 0
AND deleted_at IS NULL
ORDER BY
sales DESC,
price ASC,
id DESC
LIMIT 20;
查询目的:
字段解释:
条件分析:
<?php
declare(strict_types=1);
$dsn = 'mysql:host=127.0.0.1;dbname=your_db;charset=utf8mb4';
$username = 'your_user';
$password = 'your_pass';
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false, // 使用真正的预处理,防止注入与类型歧义
];
$pdo = new PDO($dsn, $username, $password, $options);
// 输入获取与校验(示例,可按实际来源调整)
$categoryId = filter_input(INPUT_GET, 'category_id', FILTER_VALIDATE_INT);
$minPriceIn = $_GET['min_price'] ?? null;
$maxPriceIn = $_GET['max_price'] ?? null;
$kwIn = $_GET['kw'] ?? '';
// 基本校验与清洗
if ($categoryId === false || $categoryId <= 0) {
http_response_code(400);
exit('Invalid category_id');
}
// 对于 DECIMAL(10,2) 等价格字段,使用字符串绑定避免浮点误差
$minPrice = is_numeric($minPriceIn) ? (string)$minPriceIn : '0';
$maxPrice = is_numeric($maxPriceIn) ? (string)$maxPriceIn : $minPrice;
// 保证 min <= max
if (bccomp($minPrice, $maxPrice, 8) === 1) {
[$minPrice, $maxPrice] = [$maxPrice, $minPrice];
}
// 关键词清洗与限长,避免超长输入影响性能
$kw = trim((string)$kwIn);
if ($kw === '') {
// 允许空关键词时,仍可使用 LIKE '%%',如需强制关键词可在此报错
}
$kw = mb_substr($kw, 0, 64);
// 预处理查询
$sql = <<<SQL
SELECT
id,
name,
price,
stock,
sales,
category_id
FROM products
WHERE
status = 'active'
AND category_id = :category_id
AND price BETWEEN :min_price AND :max_price
AND name LIKE CONCAT('%', :kw, '%')
AND stock > 0
AND deleted_at IS NULL
ORDER BY
sales DESC,
price ASC,
id DESC
LIMIT 20
SQL;
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':category_id', $categoryId, PDO::PARAM_INT);
// 对 DECIMAL 使用字符串绑定,避免浮点精度问题
$stmt->bindValue(':min_price', $minPrice, PDO::PARAM_STR);
$stmt->bindValue(':max_price', $maxPrice, PDO::PARAM_STR);
$stmt->bindValue(':kw', $kw, PDO::PARAM_STR);
$stmt->execute();
$products = $stmt->fetchAll();
header('Content-Type: application/json; charset=utf-8');
echo json_encode([
'data' => $products,
'count' => count($products),
], JSON_UNESCAPED_UNICODE);
安全注意事项
性能优化提示
数据库连接配置要求
参数绑定的重要性
错误处理建议
SELECT
`id`,
`username`,
`email`,
`last_login`,
`role`
FROM `users`
WHERE
`role` IN (:role_0, :role_1 /* ... 动态展开,至少一个占位符 */)
AND `is_verified` = 1
AND `status` = 'active'
AND `last_login` >= :since
-- 可选条件:当提供关键字 :kw 时,追加下一行(注意在PHP中动态拼接)
-- AND `username` LIKE CONCAT('%', :kw, '%') ESCAPE '\'
ORDER BY `last_login` DESC, `id` DESC
LIMIT 50;
<?php
$pdo = new PDO(
'mysql:host=127.0.0.1;dbname=app;charset=utf8mb4',
$user,
$pass,
[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_EMULATE_PREPARES => false, // 使用服务器端预处理
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
]
);
// 输入参数(示例)
$roles = ['admin', 'editor']; // 非空数组,建议来源于白名单
$since = '2024-01-01 00:00:00'; // 或使用 (new DateTimeImmutable('...'))->format('Y-m-d H:i:s');
$kw = null; // 可选:当为空字符串或null时不启用模糊匹配
if (empty($roles)) {
// 角色集合为空时,无匹配结果,避免构造非法 IN ()
echo json_encode([]);
exit;
}
// 动态构建 IN 占位符
$rolePlaceholders = [];
$params = [':since' => $since];
foreach (array_values($roles) as $i => $role) {
$ph = ":role_$i";
$rolePlaceholders[] = $ph;
$params[$ph] = $role; // 字符串角色
}
// 基础SQL
$sql = "
SELECT
`id`,
`username`,
`email`,
`last_login`,
`role`
FROM `users`
WHERE
`role` IN (" . implode(',', $rolePlaceholders) . ")
AND `is_verified` = 1
AND `status` = 'active'
AND `last_login` >= :since
";
// 可选关键字过滤
if ($kw !== null && $kw !== '') {
$kw = escape_like($kw);
$sql .= " AND `username` LIKE CONCAT('%', :kw, '%') ESCAPE '\\\\'";
$params[':kw'] = $kw;
}
$sql .= " ORDER BY `last_login` DESC, `id` DESC LIMIT 50";
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
$rows = $stmt->fetchAll();
echo json_encode($rows, JSON_UNESCAPED_UNICODE);
/**
* 转义 LIKE 关键字中的通配符与反斜杠,以配合 ESCAPE '\'
*/
function escape_like(string $s): string {
// 转义顺序很重要:先反斜杠,再百分号与下划线
$s = str_replace('\\', '\\\\', $s);
$s = str_replace('%', '\\%', $s);
$s = str_replace('_', '\\_', $s);
return $s;
}
status, is_verified, role, last_login, id);SELECT
payment_method,
COUNT(*) AS order_count,
SUM(total_amount) AS total_amount
FROM
orders
WHERE
status = 'paid'
AND paid_at BETWEEN :start AND :end
AND merchant_id = :merchant_id
GROUP BY
payment_method
ORDER BY
total_amount DESC,
order_count DESC
LIMIT 10;
查询目的:
字段解释:
条件分析:
PHP集成代码示例
<?php
// 假设使用 PDO 且已正确配置错误模式与字符集
$sql = "
SELECT
payment_method,
COUNT(*) AS order_count,
SUM(total_amount) AS total_amount
FROM
orders
WHERE
status = 'paid'
AND paid_at BETWEEN :start AND :end
AND merchant_id = :merchant_id
GROUP BY
payment_method
ORDER BY
total_amount DESC,
order_count DESC
LIMIT 10;
";
$stmt = $pdo->prepare($sql);
// 推荐使用 UTC 时间并传入符合数据库列类型的格式,例如 'Y-m-d H:i:s'
$params = [
':start' => $startDateTimeUTC, // e.g. '2025-01-01 00:00:00'
':end' => $endDateTimeUTC, // e.g. '2025-01-31 23:59:59'
':merchant_id' => (int)$merchantId // 确保类型正确
];
$stmt->execute($params);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
// $rows 形如:[ ['payment_method'=>'alipay','order_count'=>123,'total_amount'=>'4567.89'], ... ]
安全注意事项
性能优化提示
数据库连接配置要求
参数绑定的重要性
错误处理建议
基于简短业务描述一键生成可用查询,按提示完成参数绑定与分页,快速交付用户列表、商品搜索、订单明细等页面。
用作团队SQL规范化工具,统一字段选择、排序与安全策略,节省代码评审时间,并可批量复用到多模块。
快速产出统计类查询(按日销量、活跃用户、转化漏斗),附带优化与使用建议,稳定支撑导出与大页报表。
将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。
把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。
在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。
半价获取高级提示词-优惠即将到期