是否需要在选择查询中使用 prepare 语句?[复制]

Is there any need to use prepare statement in select query? [duplicate]

提问人:Toxic Tricks 提问时间:1/29/2023 最后编辑:DharmanToxic Tricks 更新时间:1/30/2023 访问量:92

问:

我在 select 查询中经常使用简单的方法,并且我不使用 prepare 语句,因为我认为没有必要在 select 中使用 prepare 语句,因为在 select 中我们查看了表格。进一步告诉我我认为对,或者我们也应该在选择查询中使用 prepare 语句?

如果是,请告诉我

php sql select mysqli prepared-statement

评论

1赞 Jonxag 1/29/2023
只是为了避免SQL注入攻击,你应该使用它们
1赞 Tim Biegeleisen 1/29/2023
如果您的查询使用来自数据库或应用程序外部的输入,则原则上不会发生注入攻击,并且您不需要准备好的语句。
0赞 Aconcagua 1/29/2023
预准备语句有两个主要优点: 1. 防止已经提到的 SQL 注入攻击 2.如果多次需要同一个查询,则性能提升;在这种情况下,执行路径只计算一次。如果没有外部输入,只查询一次,那么既不需要(如前所述),也不需要从中受益......
0赞 Rohit Gupta 1/29/2023
以下是一些示例,以说明注射是如何发生的
1赞 Your Common Sense 1/29/2023
@TimBiegeleisen这是一个非常糟糕的误解。鉴于一个普通的 php 用户永远无法分辨什么是“外部输入”,这个建议是一条通往 SQL 注入的直路。

答:

-2赞 s.soltanzadeh 1/29/2023 #1

当没有用户输入时,没有必要。但是,当有输入时,有时使用准备好的语句仍然很有用,即使它不是用户输入。这是因为如果语句每次都使用不同的数据多次运行,则准备语句可以更有效地执行它

妈妈说:看得见的山就在不远处,不要停止尝试

评论

0赞 Your Common Sense 1/29/2023
鉴于您无法为任何“用户输入”提供详尽的定义,您的建议是无效的,并且没有任何应用。