zoukankan      html  css  js  c++  java
  • Yii Query Builder insert()、update()、delete()使用

    Yii自带的query builder还是很好用的,省去了拼sql的过程,今天在写一个语句的时候遇到这样一个问题

    $connection = Yii::app()->db;
    $command = $connection->createCommand();
    
    $operate_rst = 0;
    if(!empty($_POST['lid'])){
        $operate_rst = $command->update('emg_landing', $landing_info, 'lid=:lid', array(':lid' => $_POST['lid']));
    }
    else{
        $operate_rst = $command->insert('emg_landing', $landing_info);
    }
    $connection->active = false;
    if($operate_rst > 0){
        Functions::returnOk('OK!');
    }
    Functions::returnErrorJson();

    用 $operate_rst 来记录操作结果,执行新建insert没有问题,但是在更新时候,有时会显示操作失败,检查了半天,也找不到原因,只好去翻文档

    http://www.yiiframework.com/doc/api/1.1/CDbCommand#update-detail

    看到return那一项是

    {return}    integer    number of rows affected by the execution.

    瞬间明白问题了,因为有的时候可能没有改数据但是触发了更新操作,所以这时候受更改的行数为0,返回的判断就进入到错误代码里。。

    同理,delete() 和 insert() 的方法返回值意义也是受到影响的行数,所以delete和insert可以根据返回值是否大于0来判断操作是否成功,但是update操作不一定,返回值为0也有可能表示对DB操作成功。

  • 相关阅读:
    TCP三次握手与四次挥手
    centos7快捷键
    关于学习简单讲解的个人观点
    继承与派生
    python封装
    python之面向对象编程
    python之re模块
    python之hashlib、suprocess模块
    python之shelve、xml、configparser模块
    python之json、pickle模块
  • 原文地址:https://www.cnblogs.com/zhaobolu/p/3667323.html
Copyright © 2011-2022 走看看