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

Apa sebenarnya yang dilakukan pg_escape_string?

Perhatikan kode berikut:

$sql = "INSERT INTO airports (name) VALUES ('$name')";

Sekarang anggaplah $name adalah "Chicago O'Hare" . Saat Anda melakukan interpolasi string, Anda mendapatkan kode SQL ini:

INSERT INTO airports (name) VALUES ('Chicago O'Hare')

yang tidak berbentuk, karena tanda kutip ditafsirkan sebagai tanda kutip SQL , dan kueri Anda akan error.

Hal-hal yang lebih buruk juga bisa terjadi. Faktanya, injeksi SQL menduduki peringkat #1 Kesalahan Perangkat Lunak Paling Berbahaya tahun 2011 oleh MITRE.

Tetapi Anda tidak boleh membuat kueri SQL menggunakan interpolasi string. Gunakan kueri dengan parameter sebagai gantinya.

$sql = 'INSERT INTO airports (name) VALUES ($1)';
$result = pg_query_params($db, $sql, array("Chicago O'Hare"));


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bagaimana cara menjalankan skrip .sql di heroku?

  2. Bagaimana cara mengembalikan hasil SELECT di dalam suatu fungsi di PostgreSQL?

  3. Tidak dapat terhubung ke server postgres di buruh pelabuhan dari aplikasi buruh pelabuhan

  4. Salin Postgres dari Variabel dengan data CSV

  5. Kerangka entitas PostgreSQL