將包含單引號的文字插入 PostgreSQL 資料庫需要小心處理,以避免語法錯誤和 SQL 注入等安全漏洞。 本指南概述了安全有效的方法。
最簡單的方法是在字串中加倍單引號。 例如,要插入“使用者日誌”,請使用下列查詢:
<code class="language-sql">INSERT INTO test VALUES (1, 'user''s log');</code>
雖然可以使用反斜線 () 進行轉義,但不太受歡迎,應保留在雙引號不可行的情況下。
對於複雜的字串或帶有巢狀引號的情況,PostgreSQL 的美元引號字串提供了卓越的解決方案。 這些字串包含在 $$
中,可以更輕鬆地處理特殊字符,包括美元符號本身(如果存在,則需要轉義)。
<code class="language-sql">$$escape ' with ''$$</code>
PostgreSQL 提供 quote_literal()
、quote_nullable()
和 format()
(帶有 %L
說明符)等函數來自動為 SQL 查詢產生正確引用的字串,消除手動轉義並降低錯誤風險。
<code class="language-sql">format('%L', string_var)</code>
至關重要的是,這些字串轉義技術不能替代準備好的語句或參數化查詢。 這些方法將資料與 SQL 指令本身分離,是防止 SQL 注入攻擊的最有效方法。 始終優先考慮準備好的語句以確保安全的資料庫互動。
以上是如何安全地將單引號的文字插入 PostgreSQL 資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!