PHP SQLSRV:sqlsrv_query()是否可以正确地准备select语句?

时间:2015-11-20 20:18:52

标签: php sql-server

TL:DR

对于sqlsrv_query()语句,select执行sqlsrv_prepare()语句的工作与sqlsrv_execute()select相同,关于预准备语句吗?

我怎样才能做出安全sqlsrv声明?

一点历史

我是关于PHP开发的新手,我有一个旧的(非OO)PHP应用程序来维护和重构所有这些意大利面条代码。实际上,我创建了一个Repository和Service抽象,在一个独立的区域中将一些Object Orientation放在项目中,而不会弄乱现在正在运行的东西。

考虑到未来的PDO包含,我已经做了这个抽象。今天我只是按步骤重构代码。教条和其他ORM不是今天的选择(项目经理的决定,不幸的是......不是我的错)。

好吧,我们在这里使用insert驱动程序,并且我已经了解了如何为updateselect操作准备和执行语句。问题是:我如何准备sqlsrv_prepare()执行声明(帮助防止一阶注入攻击),类似于sqlsrv_execute()和{{1}}?

配置:PHP 5.3,Sql Server。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

他们是不同的。

http://php.net/manual/en/function.sqlsrv-prepare.php

  

准备执行查询

http://php.net/manual/en/function.sqlsrv-query.php

  

准备并执行查询

在预准备语句中,您可以单独发送查询和参数。因此,您需要两个单独的调用(sqlsrv_execute提供该二人组的另一端)。

sqlsrv_query()只是发送SQL以立即执行。它不支持预处理语句,因此您必须将内联消毒数据包含在内。