微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 我永远不能执行SQL安全查询?

我在PHP中使用ODBC扩展连接到sql 2000服务器.这是我反对的:

>我可以用odbc_exec()OR执行查询
>我可以使用odbc_execute()执行查询

在我看来,这两种查询执行方法间的差异几乎与日夜不同:

> odbc_exec()将执行非sql安全查询并返回查询结果
> odbc_execute()与odbc_prepare()结合使用,以对数据库执行sql安全查询.但是,odbc_execute()只能返回一个布尔值,因此不能用于从SELECT语句返回结果,或者检查从UPDATE或DELETE语句更新的行数

这真的是这一切的方式,还是有一些方法来逃避在odbc_exec()中使用的值或从odbc_execute()获取结果?

对于上述困境,PHP文档似乎没有任何解决方案.

感谢您的时间.

解决方法:

正在运行的查询的资源由odbc_prepare函数返回,而不是odbc_execute.

这两个代码块做同样的事情:

$query=odbc_exec("SELECT * FROM table WHERE userinput=".$hopefully_escaped_user_input);
while($row=odbc_fetch_array($query) {
  //do stuff with $row
}



$query=odbc_prepare("SELECT * FROM table WHERE userinput=?");
odbc_execute($query,Array($user_input);
while($row=odbc_fetch_array($query) {
  //do stuff with $row
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐