thinkphp3.0 更新数据 怎么更新 我怎么save都不行 最好举个具体实例

thinkphp3.0 更新数据 怎么更新 我怎么save都不行 最好举个具体实例,第1张

方式很多,例如

$data = $_POST

$User = M('User')

$User->save($data)

或者

$User = M('User')

$User->create()

$User->save()

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

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

$student->where($dat)->save($ordered)

改成

$student->data($dat)->save()

//$data 里面需要有更新的主键ID 还有你要修改的字段的值就行了

不会在继续追问我

thinkphp批量更新数据可以参考如下三种方法:

方法一:

//批量修改 data二维数组 field关键字段 参考ci 批量修改函数 传参方式

function batch_update($table_name='',$data=array(),$field=''){

if(!$table_name||!$data||!$field){

return false

}else{

$sql='UPDATE '.$table_name

}

$con=array()

$con_sql=array()

$fields=array()

foreach ($data as $key =>$value) {

$x=0

foreach ($value as $k =>$v) {

if($k!=$field&&!$con[$x]&&$x==0){

$con[$x]=" set {$k} = (CASE {$field} "

}elseif($k!=$field&&!$con[$x]&&$x>0){

$con[$x]=" {$k} = (CASE {$field} "

}

if($k!=$field){

$temp=$value[$field]

$con_sql[$x].= " WHEN '{$temp}' THEN '{$v}' "

$x++

}

}

$temp=$value[$field]

if(!in_array($temp,$fields)){

$fields[]=$temp

}

}

$num=count($con)-1

foreach ($con as $key =>$value) {

foreach ($con_sql as $k =>$v) {

if($k==$key&&$key<$num){

$sql.=$value.$v.' end),'

}elseif($k==$key&&$key==$num){

$sql.=$value.$v.' end)'

}

}

}

$str=implode(',',$fields)

$sql.=" where {$field} in({$str})"

$res=M($table_name)->execute($sql)

return $res

}

//测试

function test(){

$update_array=array()

for ($i=2$i <7 $i++) {

$data=array()

$data['id']=$i

$data['memeber_type']=2

$data['memeber_type_state']=1

$update_array[]=$data

}

$res=$this->batch_update('yl_member',$update_array,id)

var_dump($res)

}


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

原文地址: http://outofmemory.cn/yw/12023231.html

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

发表评论

登录后才能评论

评论列表(0条)

保存