基于复选框构建 SQL 查询

2024-04-25

假设我有一个表单,其中有 30 个与音乐流派相对应的复选框(它提交给 PHP 表单处理程序)。

我有一个艺术家表,其中有一个流派字段。构建具有以下行为的查询的最佳实践是什么:

从艺术家中选择名称,其中genreid = 1 ORgenreId = 2 OR。 。 。等等。从复选框中选择genreId。

我知道我可以在 PHP 中动态构建 WHERE 子句,但我习惯使用准备好的语句和存储过程。我应该怎么办?


您可能想使用IN()在你的 where 子句中,如下所示:

WHERE genreId IN (1,2,3)

不幸的是,确实没有一个好的解决方案以参数化的方式使用它。你只需要走老路:

$query = 'SELECT ... WHERE genreId IN (' . implode(',', $genreId_array) . ')';

我想虽然你可以做这样的事情来构建参数化方法:

$query = 'SELECT ... WHERE genreId IN (';
$array_length = count($genreId_array);
for ($i = 0; $i < $array_length; $i++) {
    $query .= '?,';
}
$query = rtrim(',',$query) . ')';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于复选框构建 SQL 查询 的相关文章

随机推荐

  • 处理数据表中的会话超时(使用服务器端数据源处理)

    我有一个由服务器端 Ajax 数据源支持的数据表表单 它在后端使用 struts 操作来处理请求 获取数据并发送 JSON 响应 服务器端操作需要在身份验证模式下运行 即需要有一个活动会话 处理数据表中会话超时错误的最佳方法是什么 目前它只
  • 用渐变色绘制一个 D3 圆

    如何用渐变颜色画一个圆 比如说 从黄色到蓝色的渐变 通常 要创建黄色圆圈 我们可以使用以下代码 var cdata 50 40 var xscale 40 var xspace 50 var yscale 70 var svg d3 sel
  • 带有版本控制的 json 数据存储

    问题定义 有一个Java服务器存储JSON可以映射到 Java 类的数据 Java 类可能会发生变化 目标是能够更新 Java 类并且仍然能够解码JSON旧版本的数据到新版本的 Java 对象 应该有一个良好的版本控制系统 例如 能够向 J
  • Emacs Evil“重复”(点)行为

    我的中有以下行 emacs define key evil normal state map M j lambda interactive evil next line 5 这使得文件中的导航变得更加容易 例如 与M j我在下面 5 行 所
  • 自动调整文本框控件的垂直大小

    在 C 表单中 我有一个面板锚定所有侧面 内部有一个文本框 锚定顶部 左侧 右侧 当文本加载到文本框中时 我希望它自动垂直扩展 这样我就不需要滚动文本框 如果有更多文本不适合面板 最多滚动面板 有什么方法可以用文本框做到这一点吗 我不限于使
  • WPF 路径冲突检测?

    I have two hexagon shapes
  • 通过 dataTransfer 传递对象

    我试图找出一种通过 javascript 的 event dataTransfer 传递本机对象以进行拖放的方法 我正在编写 CMS 的前端编辑器部分 并希望用户能够拖放元素 许多不同类型 从文件到图像到 HTML 片段到几乎任何内容 这就
  • 查询具有相同ID的同一列中具有不同值的SQL表

    我有一个 SQL Server 2012 表ID First Name and Last name The ID每个人都是唯一的 但由于历史提要中的错误 不同的人被分配了相同的 ID ID FirstName LastName 1 ABC
  • 使用字典作为数据源绑定组合框

    我正在使用 NET 2 0 并且尝试将组合框的数据源绑定到已排序的字典 所以我收到的错误是 在数据源上找不到 DataMember 属性 Key SortedDictionary
  • 记录到 golang 中的文件

    我从 golang 开始 当我开始构建我的应用程序时 我想从一开始就添加日志记录 这就是我遇到问题的地方 如果我打开一个文件并使用标准日志记录库 我就可以写入文件 就像这样 package main import os fmt log fu
  • Socat串口嗅探

    我目前正在尝试访问连接到应用程序的串行端口的两个方向上的数据 我想做的是 ttymxc0 socat sniff ttyV0 应用程序ttymxc0 是真实端口 ttyV0 是虚拟端口 我发现 socat 命令适用于 Ubuntu 16 0
  • 为什么我仍然收到“已超过传入邮件的最大邮件大小配额 (65536)”错误?

    我遇到了众所周知的 WCF 错误 已超出传入消息的最大消息大小配额 65536 要增加配额 请使用相应绑定元素上的 MaxReceivedMessageSize 属性 在阅读了此错误的前五个 Google 结果后 我仍然不知道我的服务 客户
  • Http PUT 请求到 jpeg

    我收到了如下 HTTP PUT PUT photo HTTP 1 1 X Apple AssetKey F92F9B91 954E 4D63 BB9A EEC771ADE6E8 X Apple Transition Dissolve Con
  • 如何使用 Spring Security 和 Spring Session 从多个服务器获取相同的会话

    很抱歉我的英语还是不太好 请耐心等待 希望您能理解我的问题 我有两个网络服务器 每个网络应用程序都是相同的 Web 服务器共享一台 Redis 服务器 我使用 Spring Security 和 Spring Session 当我登录第一台
  • jQuery ajax 基于父类别的无限动态选择框

    我有一个类别表 category id category name parent id 1 Electronics 0 2 Mobile Phones 1 3 Computers 1 4 Iphone 2 5 Samsung Galaxy
  • R 中 read.table() 函数中的多个 na.strings

    我有一个方桌 它有两个 na strings 例如 A 和 B 我需要将其转换为 NA 到目前为止 我可以将其中之一转为 NA 但不能同时转为 NA 我该怎么做 我可以在该参数中使用函数吗 如果是 我应该使用什么功能 我尝试过像 na st
  • Android 开发应用程序生命周期结束

    我目前正在编写一个应用程序 最终将推向市场 但目前它仍处于 Alpha 阶段 我正在尝试想出 定时炸弹 应用程序的最佳方法 因此如果它在特定日期之后运行 它将提示用户说 alpha 应用程序已过期并关闭 我不会对市场上的应用程序执行此操作
  • 如何在 Visual Studio Community 2015 中更新 Xamarin for Android

    我最近安装了 Visual Studio Community 2015 并且一直在关注 MSDN 教程 当设计应用程序的外观时 我选择了 Resources layout 文件夹中的 Main axml 文件 Android 设计器失败并显
  • 将 XML 绑定到 ItemsSource 时应用动态 XPath 表达式

    我有一个 XML 文档 描述如何为用户输入构建 UI 元素 并且有包含一些数据和 XPath 表达式的数据对象 我有一个数据对象类型的 DataTemplate 它使用 HierarchicalDataTemplate 来构建基于 XML
  • 基于复选框构建 SQL 查询

    假设我有一个表单 其中有 30 个与音乐流派相对应的复选框 它提交给 PHP 表单处理程序 我有一个艺术家表 其中有一个流派字段 构建具有以下行为的查询的最佳实践是什么 从艺术家中选择名称 其中genreid 1 ORgenreId 2 O