本文介绍如何通过 php 和 mysql 实现下拉选择框(`
在实际业务系统中(如合同管理系统),用户常需从大量选项中快速定位目标条目。例如,从如下合同名称中筛选出“2025 年的框架协议”:

仅靠前端 JavaScript 过滤在数据量大时体验差且不安全;而直接在后端 SQL 中硬编码关键词(如 LIKE '%FRAMEWORK CONTRACT%' AND LIKE '%2025%')虽简单,但存在 SQL 注入风险,且难以复用。
✅ 推荐方案:服务端动态构建参数化查询
假设合同标题存储在数据库字段 id_contrato(或更合理的 titulo_contrato)中,我们应使用 mysqli 或 PDO 的预处理语句,将多个关键词安全地注入 WHERE ... LIKE 条件中。
以下为基于 mysqli 的完整、安全示例:
';
echo '';
while ($row = mysqli_fetch_assoc($result)) {
// 注意:务必对输出内容做 HTML 转义,防止 XSS
$displayText = htmlspecialchars(
$row['id_contrato'] . '-' . ($tipo_nombre ?? '') . ' ' .
($row['no_ctto'] ?? '') . ' /' . ($row['anno'] ?? ''),
ENT_QUOTES, 'UTF-8'
);
echo '';
}
echo '';
mysqli_stmt_close($stmt);
} else {
error_log("SQL 准备失败: " . mysqli_error($conexion));
echo '';
}
?>? 关键说明与最佳实践:
? 总结:多关键词过滤不是简单的字符串拼接,而是安全、可维护、可扩展的数据检索能力。坚持使用预处理语句 + 输入清洗 + 输出转义,是构建健壮 Web 表单的基础防线。