Memasukkan teks yang mengandungi petikan tunggal ke dalam jadual PostgreSQL memerlukan pengendalian khas untuk mengelakkan ralat sintaks.
Larian SQL standard melibatkan penggandaan petikan tunggal, seperti log 'pengguna'. PostgreSQL juga menyokong penggunaan pelarian segaris terbalik, seperti E'log pengguna'. Walau bagaimanapun, secara amnya disyorkan untuk menggunakan kaedah pelarian petikan berganda standard.
Jika anda perlu mengendalikan berbilang peringkat petikan melarikan diri atau bersarang, anda boleh menggunakan tanda dolar untuk memetik rentetan. Contohnya, $$escape ' dengan ''$$ atau $token$escape ' dengan ''$token$.
Apabila memasukkan nilai yang mengandungi petikan tunggal ke dalam pangkalan data, nilai tersebut mesti dipetik dengan betul untuk mengelakkan ralat. PostgreSQL menyediakan beberapa fungsi untuk ini:
quote_literal()
: Keluarkan petikan tunggal dalam rentetan dan kembalikan nilai petikan. quote_nullable()
: Serupa dengan quote_literal()
, tetapi mengeluarkan NULL untuk input kosong. format()
: Gunakan penentu format %L
untuk menggunakan petikan bersamaan dengan quote_nullable()
. Menggunakan fungsi seperti concat()
dan concat_ws()
untuk melepaskan petikan tunggal tidak disyorkan kerana ia tidak melepaskan petikan bersarang atau garis miring ke belakang.
Untuk memasukkan nilai yang diperlukan ke dalam jadual 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>
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Petikan Tunggal dengan Selamat ke dalam Pangkalan Data PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!