问题描述
|
我有一个包含一些信息和一些html代码的数据库,该代码根据代码中的sql查询生成数据库中数据的报告。我希望用户能够使用表单仅提取某些数据,而不必手动更改sql查询。我怎样才能做到这一点?
我的表单有3个字段(分支代码,IP地址和序列号),我想将它们用作应该在报告中显示的信息的搜索条件。
例如,当用户键入分支代码时,表单应使sql查询适应仅显示该特定分支信息。
解决方法
您可以基于用户的输入以编程方式创建SQL查询-但您需要谨慎操作。直接接受来自用户的输入并将其包含在SQL语句中通常被认为是一个坏主意,特别是如果您未正确验证/清除它的话。
一种替代方法是使用准备好的语句(假设您正在使用MySQL):http://dev.mysql.com/tech-resources/articles/4.1/prepared-statements.html
还有很多库可以帮助您使用SQL,包括验证/清除。
用您所说的话,将表单发布到页面后,您可以检查表单的哪一部分已被填写,并执行准备好的语句/从中构建您自己的语句。只要确保您以安全的方式进行操作即可。
,您可能需要类似
SELECT branchcode,ipadr,sn FROM sometable WHERE branchcode = \"\'.$_POST[\'branchcode\'].\'\"\';
在此处了解更多信息:
http://www.tizag.com/phpT/forms.php
编辑:但这在生产环境中可能很危险。 Google for sql注入以了解更多信息。