【发布时间】:2015-03-21 20:43:36
【问题描述】:
假设我想创建一个 wordpress 插件,它将从 wordpress 数据库中的插件自定义表中获取数据,并为每个帖子添加一些内容。这可能看起来像这样:
SELECT * FROM $my_table WHERE time BETWEEN $prevoius_post_time AND $current_post_time ORDER BY time LIMIT 5000
应该有一种方法可以通过帖子编辑器修改此查询以添加一些额外的过滤器,所以我最终会得到类似的结果:
SELECT * FROM $my_table WHERE time BETWEEN $prevoius_post_time AND $current_post_time && $filter ORDER BY time LIMIT 5000,
其中$filer 可能类似于filterrow1 != 300 && filterrow2 >=7,它将在发布新帖子之前在后端使用表单 ($_POST) 创建。
现在我不确定在哪里存储 $filer 变量,因为我有点害怕 SQL 注入等。将 $filer 存储在帖子元 via update_post_meta() 中是否足够安全,然后用 @ 接收它987654326@函数实际查询前?
还是我错过了任何其他更好的方法? 由于过滤器可能变得非常复杂,我真的看不到任何将 $filter 存储为像 $key => $value 这样的数组并在每个请求上生成整个过滤器的方法。
【问题讨论】: