Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memasukkan Teks dengan Petikan Tunggal ke dalam PostgreSQL dengan betul?

Bagaimanakah Saya Boleh Memasukkan Teks dengan Petikan Tunggal ke dalam PostgreSQL dengan betul?

Linda Hamilton
Linda Hamiltonasal
2025-01-23 14:23:10477semak imbas

How Can I Properly Insert Text with Single Quotes into PostgreSQL?

Sisipkan teks yang mengandungi petikan tunggal dalam PostgreSQL

Memasukkan nilai yang mengandungi petikan tunggal boleh menjadi rumit dalam PostgreSQL. Walau bagaimanapun, terdapat cara untuk memastikan pelarian yang betul.

Gunakan petikan tunggal

Untuk memasukkan nilai yang mengandungi petikan tunggal, gandakan nilai tersebut dalam rentetan:

<code class="language-sql">INSERT INTO test VALUES (1, 'user''s log');</code>

Meloloskan diri dengan garis miring ke belakang

Dalam versi PostgreSQL di mana standard_conforming_strings ditetapkan kepada off, atau apabila sintaks rentetan POSIX escaped didayakan menggunakan awalan E, petikan tunggal boleh dilepaskan menggunakan garis miring ke belakang:

<code class="language-sql">INSERT INTO test VALUES (1, E'user\'s log');</code>

Gunakan tanda dolar untuk memetik rentetan

Pilihan lain, terutamanya untuk rentetan kompleks yang mengandungi pelbagai peringkat pelarian, adalah dengan memetik rentetan dengan tanda dolar:

<code class="language-sql">INSERT INTO test VALUES (1, $token$escape ' with ''$token$);</code>

Fungsi untuk memetik rentetan

PostgreSQL menyediakan fungsi untuk memetik rentetan dengan betul:

  • quote_literal() atau quote_nullable(): Petik rentetan, atau kembalikan NULL untuk input kosong.
  • %L dengan penentu format(): Bersamaan dengan quote_nullable().

Contohnya:

<code class="language-sql">INSERT INTO test VALUES (1, format('%L', 'user''s log'));</code>

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan Teks dengan Petikan Tunggal ke dalam PostgreSQL dengan betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn