php - 如何在 php 中使用 sql 更新 2 个表?
问题描述
我有2 tables
,但是更新后,两个表中的数据都不起作用。我也有 2 个表,其中第一个表没有外键,而第二个表有外键。
例如,作为第一张表的 skb 表 没有外键,而作为第二张表的 pengikut_skb 表有外键。
skb表:
id_skb (PK)
pengikut_skb 表:
id_pengikut_skb (PK)
id_skb (FK)
$koneksi= mysqli_connect("localhost", "root", "","test");
$query1 = ("UPDATE skb SET nl='$nl', ttl='$ttl', jk='$jk', pekerjaan='$pekerjaan', status='$status', agama='$agama', nktp='$nktp', kewa='$kewa', aktp='$aktp', aa='$aa', at='$at', mbp='$mbp', dk='$dk', lb='$lb', jp='$jp', nskl='$nskl', dp='$dp', jenis_kep='$jenis_kep', mb='$mb', syarat_lampiran='$syarat_lampiran', kode_surat1='$kode_surat1', kode_surat2='$kode_surat2', kode_surat3='$kode_surat3', buku_tamu='$buku_tamu', kode_surat4='$kode_surat4', tahun_kode_surat='$tahun_kode_surat', riwayat_kelola='$riwayat_kelola' WHERE id_skb ='$id_skb'");
$oke1=mysqli_query($koneksi,$query1);
$query2 = (" UPDATE pengikut_skb SET nama_atau_jumlah_pengikut='$nama_atau_jumlah_pengikut', umur_pengikut='$umur_pengikut', pekerjaan_pengikut='$pekerjaan_pengikut', keterangan_pengikut='$keterangan_pengikut', nama_pengikut='$nama_pengikut', umur_pengikut2='umur_pengikut2', pekerjaan_pengikut2='$pekerjaan_pengikut2', keterangan_pengikut2='$keterangan_pengikut2', nama_pengikut2='$nama_pengikut2', umur_pengikut3='$umur_pengikut3', pekerjaan_pengikut3='$pekerjaan_pengikut3', keterangan_pengikut3='$keterangan_pengikut3', WHERE id_pengikut_skb = '$id_pengikut_skb'");
$oke2=mysqli_query($koneksi,$query2);
解决方案
UPDATE skb
JOIN pengikut_skb USING (id_skb)
SET skb.column1 = '$value1'
, pengikut_skb.column2 = '$value2'
-- and so on for each column in each table which must be updated
WHERE pengikut_skb.id_pengikut_skb = '$id_pengikut_skb'
-- and so on - all conditions which defines what record(s) must be updated in each table
-- AND skb.column3 = $value3
-- AND pengikut_skb.column4 = $value4
您不需要skb.id_skb
像在第一个查询中那样指定值,因为它是由$id_pengikut_skb
第二个查询中使用的值定义的。
推荐阅读
- python - 图像差异:忽略平移运动
- python - 应用时移
- vba - MS Access 无法识别 Office 16 文件扩展名
- python - 如何使用 matplotlib 使用自定义绘图功能创建子图的子图
- google-chrome-devtools - 有没有办法强制 Uncaught Cannot tween 空目标提供行号或堆栈跟踪?
- javascript - 如何将json对象转换为日期?
- testing - Python 测试发现因 remote.ssh + conda env 而失败
- excel - 如何返回没有字母的正则表达式匹配
- java - 考虑到夏令时,如何在 mongoDB 中存储用于调度的未来日期
- r - 将不同的函数列表传递给 dplyr 总结