【发布时间】:2010-09-11 11:36:53
【问题描述】:
我有一些代码利用参数化查询来防止注入,但我还需要能够动态构造查询,而不管表的结构如何。这样做的正确方法是什么?
这是一个示例,假设我有一个包含名称、地址、电话列的表格。我有一个网页,我在其中运行 Show Columns 并使用它们作为选项填充选择下拉列表。
接下来,我有一个名为 Search 的文本框。此文本框用作参数。
目前我的代码如下所示:
result = pquery('SELECT * FROM contacts WHERE `' + escape(column) + '`=?', search);不过,我从中得到了一种恶心的感觉。我使用参数化查询的原因是为了避免使用 escape。此外,escape 可能不是为转义列名而设计的。
我怎样才能确保这按我的预期工作?
编辑: 我需要动态查询的原因是架构是用户可配置的,我不会去修复任何硬编码的东西。
【问题讨论】:
标签: sql-injection parameterized