2010-09-04 85 views
1

与MySQL最近的工作,从PHP,我想知道这一点:交易中使用mysql_real_escape_string

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

如果需要的情况下,我在想PHP,以及文本和数字,其中数字是(使用intval()floatval()或直接管型)之间的区别,可以不包含通话。

回答

4

不要一分钱也不要一分钱愚蠢。

你的问题在微观优化领域。创建一个需要的索引或缓​​存某些查询结果比起担心mysql_real_escape_string()几个调用的性能影响要有好处。

顺便说一句,与(int) $variable类型转换稍快于致电intval($variable)。但这也将是一个微观优化。

2

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

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