欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP實(shí)現(xiàn)更新中間關(guān)聯(lián)表數(shù)據(jù)的兩種方法

 更新時(shí)間:2014年09月01日 09:17:06   投稿:shichen2014  
這篇文章主要介紹了PHP實(shí)現(xiàn)更新中間關(guān)聯(lián)表數(shù)據(jù)的兩種方法,在進(jìn)行多表操作時(shí)比較有參考價(jià)值,需要的朋友可以參考下

本文以示例形式展示了PHP實(shí)現(xiàn)更新中間關(guān)聯(lián)表數(shù)據(jù)的兩種方法。分享給大家供大家參考之用。具體方法如下:

首先,中間關(guān)聯(lián)表:這里的中間表只存表1的主鍵和表2的主鍵,即多對多的形式。
執(zhí)行數(shù)據(jù)添加和刪除為框架內(nèi)部方法,不屬于思路部分。

方法一:先全部刪除舊數(shù)據(jù),后添加新數(shù)據(jù)

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

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

方法二:只添加需要的,只刪要?jiǎng)h的

//庫中查出的舊數(shù)據(jù):$arr_old (處理過的一維數(shù)組)
//提交過來的新數(shù)據(jù):$arr_new (得到的一維數(shù)組)

$intersect = array_intersect($arr_old, $arr_new);   //交集(需要保留的部分,不用處理)
$result_del = array_diff($arr_old, $intersect);    //舊數(shù)據(jù)中需要?jiǎng)h除的
$result_add = array_diff($arr_new, $intersect);    //新數(shù)據(jù)中需要增加的

//添加新增數(shù)據(jù)
if($result_add && is_array($result_add))
{
  foreach($result_add as $val)
  {
    $data_add = array('class_id'=>$id, 'lesson_id'=>$val);       //數(shù)據(jù)
    $bool_add = $this->lesson_classes->lessonClassesAdd($data_add);  //執(zhí)行添加
  }
}

//刪除需要清除的數(shù)據(jù)
if($result_del && is_array($result_del))
{
  foreach($result_del as $val)
  {
    $bool_del = $this->lesson_classes->lessonClassesDel($id, $val); //執(zhí)行刪除
  }
}
if($bool_add && $bool_del)
{
  $this->show_tips('操作成功!');
}
else
{
  $this->show_tips('操作失??!');
}

該方法特點(diǎn):有針對性的添加數(shù)據(jù)和刪除數(shù)據(jù),較第一種方法,安全性高

希望本文所述對大家的PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • php 多進(jìn)程編程父進(jìn)程的阻塞與非阻塞實(shí)例分析

    php 多進(jìn)程編程父進(jìn)程的阻塞與非阻塞實(shí)例分析

    這篇文章主要介紹了php 多進(jìn)程編程父進(jìn)程的阻塞與非阻塞,結(jié)合實(shí)例形式分析了php 多進(jìn)程編程中父進(jìn)程的阻塞、等待、子進(jìn)程退出、非阻塞等相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02
  • Linux系統(tǒng)中設(shè)置多版本PHP共存配合Nginx服務(wù)器使用

    Linux系統(tǒng)中設(shè)置多版本PHP共存配合Nginx服務(wù)器使用

    這篇文章主要介紹了Linux系統(tǒng)中設(shè)置多版本PHP共存配合Nginx服務(wù)器使用的技巧,依靠php-fpm工具來進(jìn)行管理,需要的朋友可以參考下
    2015-12-12
  • PHP常量及變量區(qū)別原理詳解

    PHP常量及變量區(qū)別原理詳解

    這篇文章主要介紹了PHP常量及變量區(qū)別原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • PHP程序員不應(yīng)該忽略的3點(diǎn)

    PHP程序員不應(yīng)該忽略的3點(diǎn)

    這篇文章主要介紹了PHP程序員不應(yīng)該忽略的3點(diǎn),變量、數(shù)組的應(yīng)用技巧;正則表達(dá)式;模板,需要的朋友可以參考下
    2015-10-10
  • PHP令牌 Token改進(jìn)版

    PHP令牌 Token改進(jìn)版

    那個(gè)版本中,存在一個(gè)小問題,因?yàn)橐隹赡婕用?,而加密出來的字符是不可顯示字符+亂碼,所以我用了 base64對其進(jìn)行了處理,這樣一來,就不會(huì)有亂碼和不可顯示字符了。
    2008-07-07
  • CodeIgniter與PHP5.6的兼容問題

    CodeIgniter與PHP5.6的兼容問題

    這篇文章主要介紹了CodeIgniter與PHP5.6的兼容問題的處理方法,有需要的小伙伴可以參考下。
    2015-07-07
  • elgg 獲取文件圖標(biāo)地址的方法

    elgg 獲取文件圖標(biāo)地址的方法

    elgg本身有一套模板系統(tǒng),可以加載圖標(biāo)。但是如果自己寫了新的模板,怎樣獲得img的src地址呢?
    2010-03-03
  • ThinkPHP跳轉(zhuǎn)頁success及error模板實(shí)例教程

    ThinkPHP跳轉(zhuǎn)頁success及error模板實(shí)例教程

    這篇文章主要介紹了ThinkPHP跳轉(zhuǎn)頁success及error模板實(shí)例教程,可以幫助初學(xué)者進(jìn)一步熟悉ThinkPHP的頁面跳轉(zhuǎn)流程,需要的朋友可以參考下
    2014-07-07
  • PHP 網(wǎng)絡(luò)開發(fā)詳解之遠(yuǎn)程文件包含漏洞

    PHP 網(wǎng)絡(luò)開發(fā)詳解之遠(yuǎn)程文件包含漏洞

    由于PHP支持使用相同的函數(shù)(Function)對本地文件和遠(yuǎn)程文件進(jìn)行操作。因此,一些惡意用戶通過強(qiáng)行使網(wǎng)站上的PHP代碼(Code)包含自己的文件來實(shí)現(xiàn)執(zhí)行自己腳本的目的。
    2010-04-04
  • php GeoIP的使用教程

    php GeoIP的使用教程

    GeoIP介紹:什么是GepIP ?所謂GeoIP,就是通過來訪者的IP, 定位他的經(jīng)緯度,國家/地區(qū),省市,甚至街道等位置信息。
    2011-03-03

最新評論