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

PDO menyisipkan nilai array

Pertama, urutan evaluasi Anda salah. Anda tidak boleh menyetel variabel dengan nilai POST SEBELUM memeriksa apakah nilai POST ada. Anda harus memeriksa keberadaannya lalu mengaturnya menjadi variabel hanya jika ada.

$id = $conn->lastInsertId(); // obtained from above (*)

if (!isset($_POST['services'])) {
    echo  'Nothing Selected';
} else {
    $services = $_POST['services']; // array(0 => 1, 1 => 2, ...)

Kedua, saya berasumsi Anda sudah memiliki koneksi dari sebelumnya (*) -- jadi tidak perlu terhubung kembali. Karena kueri Anda pendek, Anda dapat menggunakan ? untuk mengikat parameter Anda seperti yang ditunjukkan dalam Contoh #3 .

    try {
        $stmt = $conn->prepare('INSERT IGNORE INTO marketing_lookup SET domain_id = ?, service_id = ?');
        foreach ($services as $serviceId) {
            $stmt->execute(array($id, $serviceId));
        }
    } catch (PDOException $e) {
        echo $e->getMessage();
    }
}

$conn = null; // pointless

Anda mungkin ingin melihat transaksi saat Anda melakukan banyak sisipan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Batasi nilai integer untuk kolom mysql

  2. MariaDB Tidak Memulai:Plugin 'FEEDBACK' dinonaktifkan.

  3. Bisakah saya membatalkan tabel ALTER di - MySQL?

  4. Bisakah saya menggunakan bahasa kueri hibernasi untuk entitas yang tidak dipetakan ke tabel?

  5. Bagaimana cara MEMANGGIL PROSEDUR di MySQL?