找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1395|回复: 0
打印 上一主题 下一主题

yii框架builder、update、delete使用方法

[复制链接]

2560

主题

2560

帖子

7622

积分

论坛元老

Rank: 8Rank: 8

积分
7622
跳转到指定楼层
楼主
发表于 2018-2-14 05:58:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            Yii自带的query builder还是很好用的,省去了拼sql的过程,今天在写一个语句的时候遇到这样一个问题
[U]复制代码[/U] 代码如下:
$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那一项是
[U]复制代码[/U] 代码如下:
{return}    integer    number of rows affected by the execution.
瞬间明白问题了,因为有的时候可能没有改数据但是触发了更新操作,所以这时候受更改的行数为0,返回的判断就进入到错误代码里。。
同理,delete() 和 insert() 的方法返回值意义也是受到影响的行数,所以delete和insert可以根据返回值是否大于0来判断操作是否成功,但是update操作不一定,返回值为0也有可能表示对DB操作成功。
            
            
您可能感兴趣的文章:
  • yii框架表单模型使用及以数组形式提交表单数据示例
  • yii框架通过控制台命令创建定时任务示例
  • yii框架配置默认controller和action示例
  • yii操作session实例简介
  • Yii框架中 find findAll 查找出制定的字段的方法对比
  • Yii框架关联查询with用法分析
  • Yii框架登录流程分析
  • Yii框架form表单用法实例
  • 解析PHP的Yii框架中cookie和session功能的相关操作
  • Yii2.0中的COOKIE和SESSION用法
  • Yii框架用户登录session丢失问题解决方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端