TL:DR
Does sqlsrv_query()
做同样的工作select
陈述比sqlsrv_prepare()
and sqlsrv_execute()
关于准备好的陈述,做什么?
我怎样才能做一个安全的select
陈述?
一点历史
我是 PHP 开发方面的新手,我有一个旧的(非 OO)PHP 应用程序来维护和重构所有这些意大利面条代码。事实上,我做了一个存储库和一个服务抽象,将一些面向对象的内容放在项目中的一个单独区域中,而不会扰乱当今正在运行的内容。
考虑到未来的 PDO 包含,我进行了此抽象。今天我只是逐步重构代码。 Doctrine 和其他 ORM 不是今天的选择(不幸的是,项目经理的决定......不是我的错)。
嗯,我们正在使用sqlsrv
驱动程序在这里,我已经了解了如何准备和执行一个语句insert
or update
运营。问题是:我怎样才能准备一个select
执行语句(帮助防止一阶注入攻击),类似地我也这样做sqlsrv_prepare()
and sqlsrv_execute()
?
配置:PHP 5.3、Sql Server。
先感谢您!
他们是不同的。
http://php.net/manual/en/function.sqlsrv-prepare.php http://php.net/manual/en/function.sqlsrv-prepare.php
准备执行查询
http://php.net/manual/en/function.sqlsrv-query.php http://php.net/manual/en/function.sqlsrv-query.php
准备并执行查询.
在准备好的语句中,您分别发送查询和参数。因此,您需要两个单独的调用(sqlsrv_执行 http://php.net/manual/en/function.sqlsrv-execute.php提供该二人组的另一端)。
sqlsrv_query()
只需发送 SQL 即可立即执行。它不支持准备好的语句,因此您必须内联包含经过净化的数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)