我的应用程序中有一个搜索表单,其中数据被提交到后端,该后端返回一个包含结果的表。查询是这样动态构造的:
$_POST['data'] 中的所有字段都根据该特定查询类别的允许字段列表进行过滤。
空的字段被丢弃。
顺便说一句,在保存数据时也会这样做。现在,对于由一个单词组成的字段,这完全可以。但是我在某些查询中有一些复杂的 JOIN,并且 PDO 有时会抱怨不明确的字段(例如“id”)。
我应该怎么做才能最好地处理这种情况?我不希望用户操纵我的查询,但仍然想像今天一样简单地生成它们:
case 'id':
case 'company':
$where .= ' AND `' . $field . '` = :' . $field;
...