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

Bagaimana cara menggunakan daftar putih dan pernyataan siap pakai dengan Postgresql di php?

Daftar Putih

Kode Anda dalam bentuknya saat ini sangat berbahaya, Anda tidak hanya mengizinkan pengguna untuk memutuskan bidang apa yang harus dipilih tetapi Anda juga mengizinkannya untuk memutuskan tabel apa yang akan ditanyakan. Anda pasti harus melakukan pemeriksaan daftar putih ini. misalnya:

if($_POST['tableSelected'] == 'acceptable_table1' || $_POST['tableSelected'] == 'acceptable_table2) {
    $table = $_POST['tableSelected']
}

Demikian pula Anda harus memvalidasi daftar bidang. Tetapi validasi daftar bidang akan menjadi agak rumit karena bidang Anda akan bergantung pada tabel. Saya menyarankan untuk membuat array dan memeriksa apakah pilihan ada di dalamnya.

$table1_fields = array('col1','col2',...)
$table2_fields = array('col1','col2',...)

Pernyataan yang Disiapkan

Seperti yang Anda ketahui, pernyataan yang disiapkan hanya dapat digunakan untuk mengikat parameter. Mereka tidak dapat digunakan untuk mengisi nama tabel dan nama kolom. Itu sebabnya Anda membutuhkan pernyataan yang sudah disiapkan dan daftar putih. Saya sarankan menggunakan PDO . Mungkin terlihat seperti

$stmt = $dbh->prepare("SELECT {$fieldlist} FROM {$table} where field = ?");
$stmt->execute(array('somevalue'));



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan sintaks pada atau di dekat END dengan nama kolom END

  2. Urutan tidak ada saat itu - Postgres/Spring Boot

  3. Instal susunan utf8 di PostgreSQL

  4. Bagaimana cara memasukkan nilai nol dalam kueri `tablefunc` di postgresql?

  5. Bagaimana cara menyiapkan terowongan SSH di Google Cloud Dataflow ke server database eksternal?