Php 是否可以在仅数值上注入sql?

Php 是否可以在仅数值上注入sql?,php,mysql,security,Php,Mysql,Security,我有以下代码: “SELECT * FROM colomn_name WHERE id = ‘$id’” 我能知道从数据库获取id是否安全吗? 附言:我做了一个过滤器,确认id是数字的 如果您担心sql注入,那么可以。但你需要绝对确保id中只有数字。 有很多其他的提示看看 更安全的方法是使用预先准备好的语句。原因是,虽然输入验证取决于用于确保输入正确的函数,但准备好的语句将确保语句和值不能混合,从而导致sql注入。在过去,输入验证库存在多个问题,因此它不是一个完全安全的解决方案。您可以查看更多

我有以下代码:

“SELECT * FROM colomn_name WHERE id = ‘$id’”
我能知道从数据库获取id是否安全吗?
附言:我做了一个过滤器,确认id是数字的

如果您担心sql注入,那么可以。但你需要绝对确保id中只有数字。
有很多其他的提示看看

更安全的方法是使用预先准备好的语句。原因是,虽然输入验证取决于用于确保输入正确的函数,但准备好的语句将确保语句和值不能混合,从而导致sql注入。在过去,输入验证库存在多个问题,因此它不是一个完全安全的解决方案。您可以查看更多信息。

这意味着,如果我绝对确定id只是数字,那么它是完全安全的吗?我正在编程一个安全系统,我想确保它是安全的。然后是的。没有任何其他字符的数值不能导致sql注入。如果延迟服务器无法使用该数字,则可能会导致问题,因此您可能还需要检查。非常感谢,如果您了解更多信息,请给我建议。是的,我要确保它不会太大,我会的。非常感谢。我感谢你的帮助。如果你觉得这个答案有帮助,请将它标记为已回答。谢谢。您总是可以转义
$id
变量。您可以使用
addslashes()
函数来实现这一点。为了更好的实践,您将不得不在将来处理字符串。不要依靠
addslashes()
来阻止SQL注入。对于每个查询,始终使用带绑定参数的准备语句。有一些很好的例子。请同时展示使用filter_var的代码和访问数据库的代码?您使用的是mysqli还是PDO?