DekingChen

$mysql = M(‘tablename’);

1.批量删除:

$where[‘id’] = array(‘in’,’1,3,4,…’); $msyql->where($where)->delete();

2.批量更新:

2.1第一种更新方法:将一批数据的某组字段更新成相同的数据:

$where[‘id’] = array(‘in’,’1,3,4,…’); $data[‘fieldname’]=’data’;$msyql->where($where)->save($data);

2.2第二种方法:将一批数据的不同字段进行更新成不同的数据:=>使用事务进行处理

$where[‘id’] = array(‘1,3,4,…’);

$data=array( array(data…),arrary(…),……);

//开启事务处理机制

$mysql->startTrans();

$flag = true;

for($i=0;$i<count($where);$i++){

$flag =$flag && $mysql->where(array_key($where)[0]."=".$where[‘id’][$i])->save($data[$i]);

}

if($flag){

$mysql->commit();

return true;

}else{

$mysql->callback();

return false;

}

2.3 save():如果更新的主键id不存在,返回false;如果更新的内容与原来的相同,返回false;其他情况则返回true;

2.4 PHP数组键值操作:

获取数组的键值:array_keys($arr) = > return $key_arr;

获取数组的值:array_values($arr) = > return $value_arr;

获取数组值为$value的$key值:array_keys($arr,$value) =>return $key;

将数组颠倒不保留键值:array_reserve($arr) = > return $arr;

将指定键值的数据删除:unset($arr[$key]) = >return boolean;//不会重构数组,返回后数组的键值不变,,只是删除了指定的元

素而已

将数组里面的$value打乱:sheuffle($arr)=> return $arr;

将数组下标进行查询索引排序:array_merge($arr) => return $arr;//数组下标从0、1、2…开始,重构了数组

函数把两个或多个数组合并为一个数组,如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的)。如果数组是数字索引的,则 键名会以连续方式重新索引;注释:如果仅仅向 array_merge() 函数输入了一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引。

2.5 自定义saveAll:更新函数:

/ * @param $saveWhere :想要更新主键ID数组 * @param $saveData :想要更新的ID数组所对应的数据 * @param $tableName : 想要更新的表明 * @param $saveWhere : 返回更新成功后的主键ID数组 * */){)return false;//获取更新的主键id名称;//获取更新列表的长度;;;//开启事务处理机制;//记录更新失败ID;++){//预处理sql语句;){//将更新失败的记录下来;;}//$flag=$flag&&$isRight;}){//如果都成立就提交;;){//先将原先的预处理进行回滚;++){//删除更新失败的ID和Data;;}//重新将数组下标进行排序;;//进行第二次递归更新;;}else{//如果有一条失败就回滚;return false;}}

3. 进行select查询时候,如果预知查询返回结果只有一条的话, 尽量用limit;

版权声明:本文为博主原创文章,未经博主允许不得转载。

生活会变成什么样子?正因为时光流逝一去不复返,

DekingChen

相关文章:

你感兴趣的文章:

标签云: