我希望在数据库中比较两个表(table_foreign
,table_submits
),如果不存在数据库中表table_foreign
中的表table_submits
中的某些数据,则将其删除在表table_foreign
或更新。
$query_tfhi = $this->db->query("SELECT * FROM table_foreign ORDER BY id desc");
foreach ($query_tfhi->result() as $row) {
$data_hi = json_decode($row->how_id, true);
foreach ($data_hi as $hitf) {
foreach ($hitf['howinto_id'] as $val_hitf) {
//echo $val_hitf.'<br>';
$query_delhi = $this->db->query("SELECT * FROM table_submits WHERE id LIKE '$val_hitf'");
if ($query_delhi->num_rows() == 0) {
//echo $val_hitf;
$this->db->query("DELETE how_id = array('howinto_id'=>$val_hitf) FROM tour_foreign WHERE id LIKE '$row->id'");
} else {
}
}
}
}
我在列table_foreign
的表how_id
中(此数据存储(已插入),json_encode
在行数据库表中的列上):
[{
"howinto_id": ["14"]
},{
"howinto_id": ["5"]
},{
"howinto_id": ["4"]
}, {
"howinto_id": ["3"]
}, {
"howinto_id": ["2"]
}, {
"howinto_id": ["1"]
}]
列table_submits
的表id
中的:
1
,2
,3
,4
应删除table_foreign
值14,
5中的两个表格之间的比较。在此之后它是:
[{
"howinto_id": ["4"]
}, {
"howinto_id": ["3"]
}, {
"howinto_id": ["2"]
}, {
"howinto_id": ["1"]
}]
在上面的输出中,PHP代码有错误:
发生数据库错误
错误编号:1064
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近'('howinto_id'=&gt; 14)FROM tour_foreign WHERE id LIKE'1''at line 1个
删除how_id = array('howinto_id'=&gt; 14)FROM table_foreign WHERE id 喜欢'1'
文件名:D:\ xampp \ htdocs \ system \ database \ DB_driver.php
行号:330
如何修复它们?
答案 0 :(得分:0)
我认为你的问题应该像这样解决:
array_diff($array1 , $array2)
返回那些两个数组之间的差异数组第三,您可以从差异数组($ids
)
并使用
$this->db->where_in("Id",$ids)->delete("table_submits")
像这样你已经从数据库中删除了两个表之间的差异,并告诉我你是否还可以