Dra*_*cir 2 php mysql mysql-real-escape-string
只是想知道,我的应用程序需要尽可能快,并且变量已经被转换为int,所以如果可以避免,我也不想转义字符串.
例如:
$var1 = (int)$_POST['number1'] //User input;
mysql_query("INSERT INTO ... $var1 ..");
Run Code Online (Sandbox Code Playgroud)
在所有情况下都是安全的还是我也应该mysql_real_escape_string $var1?
有时我也是md5()vars而不是逃避它们,但我想这没关系.
是的,它在所有情况下都是安全的,尽管你可能想要检查是否$_POST['number1']是一个有效的整数,以避免通知.
而且,即使你说过
我只是想知道安全性,不要太担心首选的[原文如此]方法和编码标准.
我仍然建议您使用预准备语句.
是的,这是安全的,需要注意的是,任何非有效整数的值都将被转换为0,这可能会导致副作用.
正如minitech所说,使用准备好的陈述真的应该是要走的路,因为你不必再担心这一点了.
然而,更重要的是,性能在这里并不是真正的问题,并且不值得考虑.无论你是逃避还是不逃避字符串,都不会影响你的应用程序的性能(至少不是因为它不是兆字节大).过早优化通常是浪费时间 - 这种"优化"只会使代码更难以阅读和理解,从长远来看这更为重要.
| 归档时间: |
|
| 查看次数: |
1817 次 |
| 最近记录: |