提问者:小点点

如何通过PHP[duplicate]在mysql中插入而不重复


我的php上有一个变量声明,如下所示

      $kode = mysqli_real_escape_string($conn, $_POST["kode"]);
              $nama = mysqli_real_escape_string($conn, $_POST["nama"]);
              $hargabeli = mysqli_real_escape_string($conn, $_POST["hargabeli"]);
              $hargajual = mysqli_real_escape_string($conn, $_POST["hargajual"]);
              $keterangan = mysqli_real_escape_string($conn, $_POST["keterangan"]);
              $brand = mysqli_real_escape_string($conn, $_POST["brand"]);
              $kategori = mysqli_real_escape_string($conn, $_POST["kategori"]);
              $is_active = mysqli_real_escape_string($conn, $_POST["is_active"]);
              $image_name = mysqli_real_escape_string($conn, $fileDestination);
              $sumber_pengadaan = mysqli_real_escape_string($conn, $_POST["sumber_pengadaan_id"]);
              $supplier = mysqli_real_escape_string($conn, $_POST["supplier_id"]);
              $remark = mysqli_real_escape_string($conn, $_POST["remark"]);
              $umur_penyusutan_barang = mysqli_real_escape_string($conn, $_POST["umur_penyusutan_barang"]);
              $umur_ekonomis = mysqli_real_escape_string($conn, $_POST["umur_ekonomis"]);
              $sumber_perolehan = mysqli_real_escape_string($conn, $_POST["sumber_perolehan"]);
              $tanggal_invoice = date('Y-m-d', strtotime($_POST['tanggal_invoice']));

对于所有这些结果,我在我的php上做了这个sql

sql2 = "insert into $tabeldatabase values( '$kode','$nama','$hargabeli','$hargajual','$keterangan','$kategori','','','','','','$brand','','', '$image_name', '', '$sumber_pengadaan','', '$supplier','', '$remark', '$umur_penyusutan_barang', '$umur_ekonomis', '', '$is_active', '$tanggal_invoice', '')";

但是问题是,如果$kode存在,程序会自动删除旧数据并用新数据替换,如何根据这种情况设置代码,所以如果kode存在,那么它就不能插入。

我是这么想的,但不知道这是对还是错

sql2 = "insert into $tabeldatabase values( '$kode','$nama','$hargabeli','$hargajual','$keterangan','$kategori','','','','','','$brand','','', '$image_name', '', '$sumber_pengadaan','', '$supplier','', '$remark', '$umur_penyusutan_barang', '$umur_ekonomis', '', '$is_active', '$tanggal_invoice', '') WHERE NOT EXISTS (SELECT * FROM $tabeldatabase WHERE kode = $kode)";

共1个答案

匿名用户

只需在查询中添加忽略

INSERT IGNORE INTO `table` ...

https://www.mysqltutorial.org/mysql-insert-ignore/