0

我正在开发一个基于 php 的基本函数,该函数执行 MySQL 查询,以便对数据库中的数据进行排序并将其呈现给用户。作为一般陈述,是否认为最佳实践是简单地构造静态查询并根据需要执行它们,或者简单地根据条件将 MySQL 语句的元素拼凑在一起?

为了缩小问题的范围,我有一个具体的例子:

假设我有几个下拉菜单定义了用户端的搜索。让一个下拉列表仅包含一个名称列表,例如 Bob Smith,而另外两个下拉列表包含一个日期范围。从那里,我可以轻松地创建一个搜索,SELECT item FROM checkOUT WHERE...我绝对可以编写一个带有参数的通用查询,当所有三个参数都存在时要执行。考虑只选择一个日期范围而不考虑个人的情况——这将只需要两个参数和一个不同的一般查询。如果数据分布在多个表中怎么办?必须考虑到这一点。我还应该补充一点,我的功能基于下拉菜单 - 而不是原始用户输入。

基本上,创建 MySQL 查询的最佳方法是什么 - 准备好的语句或动态创建的语句?显然,最终结果将取决于两者的混合,但它最倾向于哪一方是问题所在。我问这个问题是因为我不太熟悉处理来自一个来源的多个查询的这一特殊方面。通常,我只需要执行一个查询来获取我需要的内容并使用它——而不是排序。

任何见解都值得赞赏。

4

1 回答 1

0

我通常会创建一个 $where 变量和一个 $order 变量,然后根据来自页面的过滤器输入来构建它们。然后我只是将它附加到基本 $sql 变量并运行它。似乎对我很有用。只是不要忘记在运行查询之前逃避用户的任何讨厌的输入。

于 2012-11-05T22:09:14.167 回答