將包含單引號的文字插入PostgreSQL表需要特殊處理以避免語法錯誤。
標準SQL轉義涉及雙寫單引號,例如'user''s log'。 PostgreSQL也支援使用反斜線轉義,例如E'user's log'。但是,通常建議使用標準的雙引號轉義方法。
如果需要處理多層轉義或巢狀引號,可以使用美元符引號字串。例如,$$escape ' with ''$$ 或 $token$escape ' with ''$token$。
將包含單引號的值插入資料庫時,必須正確地為它們加引號以防止錯誤。 PostgreSQL為此提供了幾個函數:
quote_literal()
:轉義字串中的單引號並傳回帶引號的值。 quote_nullable()
:類似quote_literal()
,但對於空輸入輸出NULL。 format()
:使用%L
格式說明符套用等效於quote_nullable()
的引號。 不建議使用concat()
和concat_ws()
等函數來轉義單引號,因為它們不會轉義嵌套引號或反斜線。
要將所需的值插入test
表:
<code class="language-sql">insert into test values (1, quote_literal('user''s log')); insert into test values (2, quote_literal('my user''s')); insert into test values (3, quote_literal('customer''s'));</code>
以上是如何安全地將單引號插入 PostgreSQL 資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!