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

masukkan beberapa bidang menggunakan loop foreach

Anda melakukan foreach pada $_POST daripada pada array nama/usia. Anda harus melakukan foreach pada array nama atau usia seperti ini:

if (
   !empty($_POST['name']) && !empty($_POST['age']) &&
   is_array($_POST['name']) && is_array($_POST['age']) &&
   count($_POST['name']) === count($_POST['age'])
) {
    $name_array = $_POST['name'];
    $age_array = $_POST['age'];
    for ($i = 0; $i < count($name_array); $i++) {

        $name = mysql_real_escape_string($name_array[$i]);
        $age = mysql_real_escape_string($age_array[$i]);

        mysql_query("INSERT INTO users (name, age) VALUES ('$name', '$age')");
    } 
}

Saya juga akan mencatat bahwa Anda saat ini rentan terhadap injeksi SQL jadi saya menambahkan langkah keluar dari string Anda untuk nama/usia.

Saya juga sangat menyarankan hanya membuat satu sisipan massal ke dalam DB alih-alih menyisipkan setiap catatan satu per satu (saya akan menyerahkannya kepada Anda untuk mengimplementasikannya). Pendekatan ini hampir selalu lebih disukai dari sudut pandang kinerja.

Akhirnya, Anda BENAR-BENAR tidak boleh menggunakan mysql_* berfungsi karena tidak digunakan lagi. Pertimbangkan untuk mengubah ke mysqli atau PDO.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ekspor dan Impor semua database MySQL sekaligus

  2. Konektor dan Lisensi MySQL

  3. Mengapa SHOW TABLE STATUS innodb sangat tidak dapat diandalkan?

  4. Pencegahan yang baik dari injeksi MYSQL?

  5. MySQL, Kesalahan 126:File kunci salah untuk tabel