最近在PHP中使用MySQL,我想知道这个:
mysql_real_escape_string()
会对性能产生什么影响?如果需要一个场景,我正在考虑PHP,以及文本和数字之间的区别,其中可以包含数字(使用intval()
,floatval()
或直接强制转换)而无需调用。< / p>
答案 0 :(得分:4)
不要吝啬和愚蠢。
您的问题属于微优化领域。创建所需的索引或缓存某些查询结果比担心对mysql_real_escape_string()
的几次调用的性能影响有一个数量级的好处。
顺便说一句,使用(int) $variable
进行类型转换比调用intval($variable)
稍快一些。但这也是微观优化。
答案 1 :(得分:2)
如果您需要在数据库输入之前转义用户输入,那么您将不得不使用mysql_real_escape_string()
...不要过于担心过早优化。
或者,您可以查看准备好的语句,这些语句将使您不必多次调用此函数 - 并且它更安全,因为它将SQL逻辑与用户输入完全分开。