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


Posted in PHP onApril 30, 2014

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操作成功。

PHP 相关文章推荐
3
Oct 09 PHP
如何使用PHP中的字符串函数
Oct 09 PHP
深入理解:XML与对象的序列化与反序列化
Jun 08 PHP
深入PHP magic quotes的详解
Jun 17 PHP
PHP SESSION的增加、删除、修改、查看操作
Mar 20 PHP
PHP Opcache安装和配置方法介绍
May 28 PHP
php实现用已经过去多长时间的方式显示时间
Jun 05 PHP
PHP flush 函数使用注意事项
Aug 26 PHP
PHP新特性之字节码缓存和内置服务器
Aug 11 PHP
PHP7基于curl实现的上传图片功能
May 11 PHP
Laravel框架Request、Response及Session操作示例
May 06 PHP
laravel validate 设置为中文的例子(验证提示为中文)
Sep 29 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
Apr 30 #PHP
php+js iframe实现上传头像界面无跳转
Apr 29 #PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 #PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 #PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
Apr 29 #PHP
PHP include任意文件或URL介绍
Apr 29 #PHP
php调用google接口生成二维码示例
Apr 28 #PHP
You might like
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
2011/10/31 PHP
php使用qr生成二维码的示例分享
2014/01/20 PHP
php实例分享之html转为rtf格式
2014/06/02 PHP
php简单实现MVC
2015/02/05 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
php的socket编程详解
2016/11/20 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
2020/11/23 PHP
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
javascript 面向对象封装与继承
2014/11/27 Javascript
jQuery实现鼠标点击弹出渐变层的方法
2015/07/09 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
2016/10/15 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
基于Three.js实现360度全景图片
2018/12/30 Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
2019/05/10 Javascript
详解js实时获取并显示当前时间的方法
2019/05/10 Javascript
HTML+JS实现“代码雨”效果源码(黑客帝国文字下落效果)
2020/03/17 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
Python socket编程实例详解
2015/05/27 Python
Python Property属性的2种用法
2015/06/21 Python
Python字符串、整数、和浮点型数相互转换实例
2018/08/04 Python
基于pycharm导入模块显示不存在的解决方法
2018/10/13 Python
详解用python写一个抽奖程序
2019/05/10 Python
基于python实现简单网页服务器代码实例
2020/09/14 Python
python反扒机制的5种解决方法
2021/02/06 Python
linux下进程间通信的方式
2014/12/23 面试题
高中学生干部学习的自我评价
2014/02/21 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
JS监听Esc 键触发事键
2021/04/14 Javascript
python爬虫之利用selenium模块自动登录CSDN
2021/04/22 Python
如何用threejs实现实时多边形折射
2021/05/07 Javascript
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技