Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

PDO Sisipkan Array Menggunakan Kunci Sebagai Nama Kolom

Saya akan melakukannya dengan cara ini:

Deklarasikan kolom terlebih dahulu. Kami akan menggunakan ini untuk mengekstrak subset dari $_POST untuk digunakan sebagai kolom. Jika tidak, pengguna dapat mengirimkan parameter permintaan palsu yang tidak cocok dengan kolom tabel mana pun, yang akan merusak SQL kami.

$columns = array('username','email','password','name');
$column_list = join(',', $columns);

Buat placeholder parameter bernama yaitu :username .

$param_list = join(',', array_map(function($col) { return ":$col"; }, $columns));

Bentuk SQL secara terpisah, karena lebih mudah dibaca dan di-debug jika berada dalam variabelnya sendiri.

$sql = "INSERT INTO `applications` ($column_list) VALUES ($param_list)";

Selalu periksa status kesalahan yang dikembalikan dari prepare() dan execute() .

$statement = $db->prepare($sql);
if ($statement === false) {
  die(print_r($db->errorInfo(), true));
}

Di sini kami mengambil hanya bidang $_POST yang cocok dengan kolom yang ingin kita sisipkan.

$param_values = array_intersect_key($_POST, array_flip($columns));

Dan berikan array itu ke execute() . Sekali lagi, periksa status pengembalian kesalahan.

$status = $statement->execute($param_values);
if ($status === false) {
  die(print_r($statement->errorInfo(), true));
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah ada alternatif untuk TOP di MySQL?

  2. Cara mengatur koneksi MySQL jarak jauh

  3. Aktifkan Dukungan Mesin Penyimpanan MySQL InnoDB di Instalasi XAMPP

  4. Tampilkan Data dengan Format di Datagridview

  5. Apakah saya menggunakan Java PooledConnections dengan benar?