PHP更新中间关联表数据的两种方法
本文介绍了PHP更新中间表数据的两种方法,供大家参考,具体方法如下:首先,中间关联表:这里的中间表只保存表1的主键和表2的主键,即多对多形式。
在内部框架中添加和删除数据并不是思想的一部分。
方法1:首先删除所有旧数据,然后添加新数据
RES =美元美元->类-> classedit($id,$data); / /修改主表数据
如果($)
{
第一个删除关联表数据
bool =美元美元-> lesson_classes -> lessonclassesdel($id);
如果($布尔)
{
添加数据的循环程序集条件。
foreach(lesson_ids美元美元价值)
{
ARR =阵列('class_id美元= > $id,'lesson_id= > $ Val); / /数据
RES =美元美元-> lesson_classes -> lessonclassesadd($ ARR); / /添加
}
}
美元-> show_tips(手术成功!);
}
其他的
{
美元-> show_tips(手术失败!);
}
方法:在这里使用批量删除数据的缺点是不安全的,在一定程度上存在安全隐患。
方法二:只添加需要,只删除删除。
在图书馆 / /发现旧的数据:arr_old美元(一维数组处理)
新的数据提交: / / arr_new美元(一维数组中获得)
美元($ arr_old相交= array_intersect,arr_new美元); / /交叉口(需要保留的部分没有处理)
result_del = array_diff美元(美元美元arr_old,相交); / /删除旧数据
result_add = array_diff美元(美元美元arr_new,相交); / /需要添加新的数据
添加新数据
如果(result_add is_array美元(美元result_add))
{
foreach(result_add美元美元价值)
{
data_add美元=阵列('class_id= > $id,'lesson_id= > $ Val); / /数据
bool_add美元=美元-> lesson_classes -> lessonclassesadd($ data_add); / /添加
}
}
删除清除数据的需要
如果(result_del is_array美元(美元result_del))
{
foreach(result_del美元美元价值)
{
bool_del美元=美元-> lesson_classes -> lessonclassesdel($id,$ Val); / /删除
}
}
如果($ bool_add bool_del美元)
{
美元-> show_tips(手术成功!);
}
其他的
{
美元-> show_tips(手术失败!);
}
该方法的特点是有针对性地添加数据和删除数据,这比第一种方法更安全。
希望本文能对大家的PHP程序设计有所帮助。