2010-09-04 36 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邏輯與用戶輸入完全分開。