PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Masukkan $$ dalam string yang dikutip dolar di PostgreSQL

Gunakan dolar-quotes sebagai gantinya:

select upsert(
   $unique_token$INSERT INTO zz(a, b) VALUES (66, 'ha$$hahaha')$unique_token$,
   $unique_token2$UPDATE zz SET a=66, b='hahahaha' WHERE a=66$unique_token2$
   )

Setiap akhir harus cocok dengan setiap awal. Kedua pasangan tidak harus berbeda, tetapi paling aman seperti itu.

Ini masih menyisakan peluang teoretis bahwa kutipan dolar mungkin cocok di dalam string.

Jika Anda membuat kueri secara manual, cukup periksa $ dalam string. Jika Anda membuat kueri dari variabel, Anda dapat menggunakan quote_literal(querystring) sebagai gantinya.

Ada juga format() fungsi.

Lihat:

Selain:Saya berasumsi Anda tahu bahwa bentuk SQL dinamis ini sangat rentan terhadap injeksi SQL? Hal semacam itu seharusnya hanya untuk penggunaan yang sangat pribadi atau sangat aman.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggabungkan Data dengan OVER PARTITION berdasarkan tanggal

  2. Apa yang Harus Diperhatikan jika Replikasi PostgreSQL Anda Lagging

  3. Bisakah saya mendapatkan format tanggal khusus untuk memetik (daftar) di Laravel5?

  4. Permintaan SQL menggunakan IN dengan daftar sangat lambat

  5. Melakukan Perubahan Topologi Replikasi untuk PostgreSQL