使用mysql_real_escape_string的事务

时间:2010-09-04 02:40:57

标签: php performance mysql-real-escape-string

最近在PHP中使用MySQL,我想知道这个:

  • 在脚本中多次使用mysql_real_escape_string()会对性能产生什么影响?
  • 是否值得尝试减少给定脚本对此函数的调用次数?
  • 每次调用时是否确定连接的字符集,或者缓存此值?

如果需要一个场景,我正在考虑PHP,以及文本和数字之间的区别,其中可以包含数字(使用intval()floatval()或直接强制转换)而无需调用。< / p>

2 个答案:

答案 0 :(得分:4)

不要吝啬和愚蠢。

您的问题属于微优化领域。创建所需的索引或缓​​存某些查询结果比担心对mysql_real_escape_string()的几次调用的性能影响有一个数量级的好处。

顺便说一句,使用(int) $variable进行类型转换比调用intval($variable)稍快一些。但这也是微观优化。

答案 1 :(得分:2)

如果您需要在数据库输入之前转义用户输入,那么您将不得不使用mysql_real_escape_string() ...不要过于担心过早优化。

或者,您可以查看准备好的语句,这些语句将使您不必多次调用此函数 - 并且它更安全,因为它将SQL逻辑与用户输入完全分开。