Thinkphp怎么批量更新数据

Thinkphp怎么批量更新数据,第1张

// 下面是一个model类中的方法,你配置好model的表名,调用updateAll()方法

<?php

use Think\Model

use Org\Util\String

class TestModel extends Model

{

protected $tableName = 'your_table'

/**

* 单条-条件查询

*

* @param array $where 查询条件

* @return \Think\mixed

*/

public function getOne($where)

{

return $this->where($where)->find()

}

/**

* 多条-条件查询

*

* @param array $where 查询条件

* @return \Think\mixed

*/

public function getAll($where)

{

return $this->where($where)->select()

}

/**

* 插入数据

*

* @param array $data

* @return \Think\mixed

*/

public function insertOne($data)

{

return $this->add($data)

}

/**

* 条件删除

*

* @param array $where

* @return \Think\mixed

*/

public function deleteOne($where)

{

return $this->where($where)->delete()

}

/**

* 查询字段最大值

*

* @param string $field

* @return \Think\mixed

*/

public function getMaxVal($field)

{

return $this->field("max(".$field.") as max")->find()['max']

}

/**

* 条件更新

*

* @param array $where 条件

* @param array $data 数据

* @return Ambigous <boolean, unknown>

*/

public function updateAll($where,$data)

{

return $this->where($where)->save($data)

}

/**

* 分页查询

*

* @param array $where 条件

* @param string $order 排序字段

* @param number $limit 一页里的数据条数

* @param number $page_index 页码

* @return array

*/

public function getByPage($where,$order,$limit,$page_index)

{

$result = M()->table('table_name')->where($where)->order($order)->limit($limit)->page($page_index)->select()

return $result

}

/**

* 获取页数

*

* @param array $where 条件

* @param number $num 一页里的数据

* @return number

*/

public function getPageNum($where,$num = 10)

{

$count = $this->where($where)->count()

return ceil($count/$num)

}

/**

* 条件查询一个字段

*

* @param array $where

* @param string $field

* @return \Think\mixed

*/

public function getFieldVal($where,$field)

{

return $this->where($where)->getField($field)

}

}

伪代码 对应好id和数组的值就行

$data=array('2','23','1111')

for ($i = 0$i <count($data)$i++) {

$sql="UPDATE 表 SET `value` = 'value'+$data[0] WHERE `id` =$i"

mysql_query($sql)

}

方式很多,例如

$data = $_POST

$User = M('User')

$User->save($data)

或者

$User = M('User')

$User->create()

$User->save()

要具体方式具体分析,总得来说,流程就是接受浏览器POST来的数据,然后调用模型的save方法来更新,或者直接使用create方法来接受并初始化POST过来的数据。但需要注意的是,数据库里需要已存在这条数据。这些基本的方法你可以去参考开发手册。

如果你是这么做的但仍然不行,那么你可以使用模型的getLastSql()方法来查看模型到底是执行了什么样的SQL语句,然后自己看看SQL语句是否有问题,以便排查自己的错误


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9896711.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存