当前位置: 首页 > 知识库问答 >
问题:

PHP准备语句中的自定义where子句

昌学
2023-03-14

例如,如果!empty($param3)则添加一个where子句,但如果它为空,则不会在查询中使用该子句。

最好的情况是使用筛选表单来缩小记录列表:如果没有使用筛选器,则查询甚至不会使用WHERE,而所有筛选器都可能使用,从而产生一个大的WHERE查询。

正如我现在看到的,我需要为每种情况注册一个准备好的语句,但这将导致大量语句需要分别维护和测试

共有1个答案

程英资
2023-03-14

不要准备不准备执行的查询。

确实,如果WHERE子句中的搜索词存在差异,则需要准备一个不同的SQL字符串。

准备好的查询只允许您使用参数而不是文字值;也就是通常要将带引号的字符串、日期或数字文字放入的位置。但参数不能用于其他语法,如表名、列名、SQL表达式、SQL关键字等。

 类似资料:
  • 我需要实现一个方法来查询不同数量的条件。我不想每次都做一个新的准备好的语句,因为这就是为什么我首先使用准备好的语句。基本上我有三个条件。 现在我不知道如何用准备好的语句进行这样的查询。因为我没有办法设置。有什么建议可以实现这一点吗?

  • 我准备了以下语句,通过JDBC驱动程序将其发送到Oracle数据库: 但是,我希望使用相同的准备好的语句,通过提供通配符参数这样的东西来获取表中的所有行。我尝试了“*”和“”这样的字符串,但它总是不返回行。 是否存在用于获取所有行的此准备语句中的参数的值?

  • 问题内容: 今天有人告诉我,我确实应该在应用程序中使用PDO和准备好的语句。在我了解好处的同时,我也在努力了解如何将其实现到我的工作流程中。除了它使代码更简洁外,我是否应该有一个特定的数据库类来容纳所有准备好的语句,还是应该在每次运行查询时都创建一个?我发现很难理解何时应使用标准PDO查询以及何时应使用准备好的语句。任何示例,技巧或教程链接将不胜感激。 问题答案: pdo :: prepare()

  • 问题内容: 嗨,我正在尝试学习使用准备好的语句来避免SQL注入等的正确方法。 当我执行脚本时,我从脚本中收到一条消息,提示已插入0行,我希望这表示已插入1行,并且当然会更新表。我不完全确定自己准备好的陈述,因为我已经做过一些研究,我的意思是每个例子都各不相同。 更新表格时,我需要声明所有字段吗?还是只更新一个字段就可以了? 任何信息将非常有帮助。 index.php classes / class

  • 问题内容: 我正在使用nodejs npm软件包, 我目前有一系列产品skus,例如.. 我的sql存储在文件中,如下所示… 然后,我还准备了如下语句: 正确地包含在对象中,因为当我简单地使用它时,该语句可以正常工作,我只是在努力如何传递数组以使它们在准备好的语句中工作。 我使用和修改字符串,以逗号分隔等,但我无法使这些方法正常工作。 我以为我需要param字符串才能如下所示。 如果有人可以阐明如

  • 问题内容: 我有一个包含多个搜索条件的搜索页面 员工姓名 员工ID 入职日期 部门 等等 用户可以提供一个或多个搜索条件。我需要查询数据库以获取搜索结果。 使用纯JDBC,有两种方法可以实现此目的。 通过附加用户提供的搜索条件来准备SQL查询。 例如: 使用 例如: 此答案说明,像上面的ex 1一样,可以修改ex2,如下所示 然后仔细地(牢记参数索引)将输入设置为准备好的语句。听起来这不是一个非常