我的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)";
只需在查询中添加忽略
:
INSERT IGNORE INTO `table` ...
https://www.mysqltutorial.org/mysql-insert-ignore/