thinkphp的数据库修改数据的方法!
我先从数据库里随机读取出一条数据$arr=$m->where($data)->limit(1)->order('rand()')->select();然后我想先判断数据的...
我先从数据库里随机读取出一条数据
$arr = $m->where($data)->limit(1)->order('rand()')->select();
然后我想先判断数据的那一字段为空,然后将数据写入
foreach($arr[0] as $k => $val){
if($val == null){
$data['id'] = $arr[0][0];
$data[$arr[0][$k]] = '写入这句';
$m -> where() -> save($data2);
}
}
貌似一直更新不了,想求教一下大家我该怎么写? 展开
$arr = $m->where($data)->limit(1)->order('rand()')->select();
然后我想先判断数据的那一字段为空,然后将数据写入
foreach($arr[0] as $k => $val){
if($val == null){
$data['id'] = $arr[0][0];
$data[$arr[0][$k]] = '写入这句';
$m -> where() -> save($data2);
}
}
貌似一直更新不了,想求教一下大家我该怎么写? 展开
展开全部
1、$data['id'] = $arr[0][0];这句$arr[0]的结构是怎样的?它应该是索引数组吧,那么$arr[0][0]存在么?
2、$m -> where() -> save($data2);这句几个意思,where条件都没有,为啥还要写where?$data2又是哪里冒出来的?
2、$m -> where() -> save($data2);这句几个意思,where条件都没有,为啥还要写where?$data2又是哪里冒出来的?
更多追问追答
追答
嗯,明白你的意思。
1、追问里边倒数第二句错了,应该是$data[$k] = '写入这句';
2、你说“还是错的”,具体是怎样的?是没有更新,还是代码有错误?代码错误的话又是什么错误信息?
ps:你是要将查询出的数据中为空的字段补充信息,这样可能有好几个空字段,所以理想的方法是先找出需要更新的字段,最后再一次性更新。
foreach($arr[0] as $k => $val){
$data['id'] = $arr[0]['id'];
if($val == null)
$data[$k] = '写入这句';
$m->save($data);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询