thinkphp 修改数据库数据不成功

WBOY
發布: 2016-07-06 13:53:41
原創
2355 人瀏覽過

<code>    
    public function update(){
        $room=M('room');
//         $room_id=$_GET['room_id'];
        $room_id=$_POST['room_id'];
       
        $roominfo['room_id']=$_POST['room_id'];
        $roominfo['room_type']=$_POST['room_type'];
        $roominfo['room_status']=$_POST['room_status'];
        $roominfo['room_area']=$_POST['room_area'];
        $roominfo['room_cost']=$_POST['room_cost'];
        $roominfo['description']=$_POST['description'];
         

        print_r($roominfo);
//         $room->where("room_id=$room_id")->save($roominfo);
        
         
         echo "<script>alert('修改成功')</script>";
//          $this->redirect("showRoom");
  
    }
</code>
登入後複製
登入後複製

我的修改函数代码如上,打印了$room_info对象的值,也确实是修改过的,但是为什么执行之后数据库的数据还是没有改变。请问这是为什么?

回复内容:

<code>    
    public function update(){
        $room=M('room');
//         $room_id=$_GET['room_id'];
        $room_id=$_POST['room_id'];
       
        $roominfo['room_id']=$_POST['room_id'];
        $roominfo['room_type']=$_POST['room_type'];
        $roominfo['room_status']=$_POST['room_status'];
        $roominfo['room_area']=$_POST['room_area'];
        $roominfo['room_cost']=$_POST['room_cost'];
        $roominfo['description']=$_POST['description'];
         

        print_r($roominfo);
//         $room->where("room_id=$room_id")->save($roominfo);
        
         
         echo "<script>alert('修改成功')</script>";
//          $this->redirect("showRoom");
  
    }
</code>
登入後複製
登入後複製

我的修改函数代码如上,打印了$room_info对象的值,也确实是修改过的,但是为什么执行之后数据库的数据还是没有改变。请问这是为什么?

// $room->where("room_id=$room_id")->save($roominfo);

前面的注释符号是不是要去掉。。。

另外 : "room_id=$room_id" ,楼主可以百度下sql注入。

M()->getLastsql()

看着应该是thinkphp,提几点意见。

  1. 不要直接用$_POST或者用$_Get,以防止SQL注入,应该用I函数。

  2. 调试sql应该用$obj->getLastsql()方法。

  3. 输出对象应用自带的dump函数。

确定代码没问题的话,也可能是你数据库问题,比如你的账号没有写权限,你操作的是读库,不能执行更新操作等,先排查下哪里问题吧

  1. 如果可能的话打印下M()->getLastsql()

  2. 如果你的room_id为表主键那么可以用以下代码

    <code>$roominfo['room_id']=$_POST['room_id'];
    $roominfo['room_type']=$_POST['room_type'];
    $roominfo['room_status']=$_POST['room_status'];
    $roominfo['room_area']=$_POST['room_area'];
    $roominfo['room_cost']=$_POST['room_cost'];
    $roominfo['description']=$_POST['description'];
    $room->save($roominfo);</code>
    登入後複製

$room->where("room_id=".$room_id)->save($roominfo);

把注视放开试试呢

在$room_id下面添加这句话:$roominfo = $room->getByID($room_id);

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板