簡體   English   中英

PHP mysqli_real_escape_string參數

[英]PHP mysqli_real_escape_string argument

我不是問如何使用該功能。

我知道mysqli_real_escape_string的功能是什么或如何使用它,但我想問一下,為什么它的第一個參數需要引用mysqli連接?

這里有一些猜測,但我不知道我是否猜對了:

  • 該函數是否觸發對數據庫連接的任何調用,以便它需要連接以轉義字符串?
  • 這是PHP實現中的一些技術限制嗎?
  • 還是其他任何原因?

這個問題令我感到不安,因為我的軟件中有多線程,我有一個接受字符串查詢作為參數的函數,並將查詢推送到另一個線程執行,所以我無法獲取MySQLi的實例以逃避我的字符串查詢。

來自http://php.net/manual/de/mysqli.real-escape-string.php:mysqli :: real_escape_string - mysqli_real_escape_string - 轉義字符串中的特殊字符以用於SQL語句, 同時考慮當前的字符集連接

簡而言之:該函數必須知道您的連接使用什么字符集。

替代mysql_real_escape_string而不連接到DB

這基本上解釋了原因。 必須知道MySQL連接使用的char集。 如果不這樣做,則可能會進行多字節SQL注入,具體取決於您的代碼。 無論如何,除非你編寫自己的函數,否則你需要使用MySQL實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM