我將使用PhP表示法來使變量變得簡單。MYSQL命令和編碼
假設數據庫是UTF-8,客戶端設置爲UTF-8。
有兩方面的問題。知道,對於'(報價)的ASCII碼是39十進制:
客戶端 當查詢變量$標題,逃脫的使用功能,如real_escape_string(),將功能逃避所有字節表示分別有39個值?還是會看到值39的字節是否是UTF-8符號的一部分?
服務器端
SELECT * from STORIES WHERE title = 'Hello'
是什麼MYSQL假設查詢編碼是什麼?這包括部分:
SELECT * from STORIES WHERE title = '
然後如果$ filteredTitle恰好有39個字節中它是一個UTF-8符號的一部分,請問MYSQL知道這是不是一個報價?
恕我直言,太多擔心什麼。你真的嘗試過:'「從STORIES WHERE標題='」選擇*。「.mysql_real_escape_string($ title)。」'「'? – Alex
我想了解它是如何工作的。你提到的查詢有什麼問題? – Makketronix
如果你想了解mysql是開源的,你可以閱讀所有的源代碼。爲什麼它一定是錯誤的查詢字符串我建議? – Alex