執行數據添加和刪除為框架內部方法,不屬于 " /> 国产成人午夜99999,成人黄色91,精品国产一区久久

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

PHP實現更新中間關聯表數據的兩種方法

本文以示例形式展示了php實現更新中間關聯表數據的兩種方法。分享給大家供大家參考之用。具體方法如下:

首先,中間關聯表:這里的中間表只存表1的主鍵和表2的主鍵,即多對多的形式。
執行數據添加和刪除為框架內部方法,不屬于思路部分。

方法一:先全部刪除舊數據,后添加新數據

$res = $this->classes->classEdit($id, $data);  //修改主表數據if($res){  //先刪除關聯表數據  $bool = $this->lesson_classes->lessonClassesDel($id);  if($bool)  {    //循環組裝條件,添加數據    foreach($lesson_ids as $val)    {      $arr = array('class_id'=>$id, 'lesson_id'=>$val);    //數據      $res = $this->lesson_classes->lessonClassesAdd($arr);  //執行添加    }  }  $this->show_tips('操作成功!');}else{  $this->show_tips('操作失敗!');}

使用該方法弊端:大批量刪除數據這塊兒不安全,存在一定程度的安全隱患。

方法二:只添加需要的,只刪要刪的

//庫中查出的舊數據:$arr_old (處理過的一維數組)//提交過來的新數據:$arr_new (得到的一維數組)$intersect = array_intersect($arr_old, $arr_new);   //交集(需要保留的部分,不用處理)$result_del = array_diff($arr_old, $intersect);    //舊數據中需要刪除的$result_add = array_diff($arr_new, $intersect);    //新數據中需要增加的//添加新增數據if($result_add && is_array($result_add)){  foreach($result_add as $val)  {    $data_add = array('class_id'=>$id, 'lesson_id'=>$val);       //數據    $bool_add = $this->lesson_classes->lessonClassesAdd($data_add);  //執行添加  }}//刪除需要清除的數據if($result_del && is_array($result_del)){  foreach($result_del as $val)  {    $bool_del = $this->lesson_classes->lessonClassesDel($id, $val); //執行刪除  }}if($bool_add && $bool_del){  $this->show_tips('操作成功!');}else{  $this->show_tips('操作失敗!');}

該方法特點:有針對性的添加數據和刪除數據,較第一種方法,安全性高

希望本文所述對大家的php程序設計有所幫助。

php技術PHP實現更新中間關聯表數據的兩種方法,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 利川市| 南郑县| 萝北县| 新营市| 清镇市| 盐津县| 瑞金市| 诸暨市| 新蔡县| 长乐市| 滨州市| 砀山县| 柘荣县| 广宗县| 光山县| 双鸭山市| 鄂托克前旗| 郓城县| 溧阳市| 抚顺县| 汝阳县| 德庆县| 奎屯市| 宜黄县| 紫金县| 竹溪县| 惠东县| 闽侯县| 平罗县| 贵德县| 玛多县| 年辖:市辖区| 余姚市| 岱山县| 社旗县| 将乐县| 阿巴嘎旗| 车致| 金门县| 嫩江县| 桂东县|