Melepaskan Rentetan untuk Padanan Corak dalam PostgreSQL
Untuk memadankan corak dalam PostgreSQL dengan tepat di mana rentetan yang dibekalkan pengguna mungkin mengandungi aksara corak khas seperti % , pertimbangkan untuk melepaskan watak ini untuk memastikan padanan yang tepat. Sebagai alternatif, aplikasi boleh mengendalikan proses melarikan diri.
Dalam PostgreSQL, aksara seperti % dan _ perlu dipetik menggunakan , tetapi ini boleh disesuaikan dengan klausa ESCAPE. Untuk memadankan aksara secara literal, ia mesti dipetik dua kali.
Sebagai contoh, untuk memadankan corak 'john%node1^node2.uucp@' dengan ^ sebagai aksara melarikan diri, gunakan pertanyaan berikut:
... WHERE field LIKE 'john^%node1^^node2.uucp@%' ESCAPE '^'
Walau bagaimanapun, apabila standard_conforming_strings dilumpuhkan (PG 9.1 telah mendayakannya secara lalai), digunakan untuk yang lain tujuan. Selain itu, petikan pihak pelanggan mungkin diperlukan dalam senario suntikan.
Untuk pengendalian generik dalam Go, mempertimbangkan kedua-dua string_conforming_standard dan aksara petikan alternatif, pertanyaan berikut boleh digunakan:
db.Query("SELECT * from USERS where name like replace(replace(replace(,'^','^^'),'%','^%'),'_','^_') ||'%' ESCAPE '^'", variable_user_input);
Ini mengendalikan pelarian dan penggantian aksara khas pada bahagian pelayan, menghalang suntikan SQL dan memastikan corak yang tepat padan.
Atas ialah kandungan terperinci Bagaimana untuk Melarikan Diri Watak Khas untuk Padanan Corak Tepat dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!