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 相关文章推荐
PHP脚本的10个技巧(2)
Oct 09 PHP
PHP通过COM使用ADODB的简单例子
Dec 31 PHP
php后台程序与Javascript的两种交互方式
Oct 25 PHP
PHP中将数组转成XML格式的实现代码
Aug 08 PHP
LotusPhp笔记之:Logger组件的使用方法
May 06 PHP
使用PHP导出Redis数据到另一个Redis中的代码
Mar 12 PHP
20个2014年最优秀的PHP框架回顾
Oct 22 PHP
PHP中通过fopen()函数访问远程文件示例
Nov 18 PHP
PHP程序员不应该忽略的3点
Oct 09 PHP
PHP读取并输出XML文件数据的简单实现方法
Dec 22 PHP
PHP-FPM的配置与优化讲解
Mar 15 PHP
Laravel实现ORM带条件搜索分页
Oct 24 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
长波有什么东西
2021/03/01 无线电
同时提取多条新闻中的文本一例
2006/10/09 PHP
php下使用SimpleXML 处理XML 文件
2010/02/27 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
js对象的比较
2011/02/26 Javascript
JqGrid web打印实现代码
2011/05/31 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
公共js在页面底部加载的注意事项介绍
2013/07/18 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
JS实现自动变换的菜单效果代码
2015/09/09 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
浅谈JavaScript的全局变量与局部变量
2016/06/10 Javascript
JS中IP地址与整数相互转换的实现代码
2017/04/10 Javascript
基于node.js express mvc轻量级框架实践
2017/09/14 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
vue 移动端适配方案详解
2018/11/15 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
2019/11/20 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
[02:38]DOTA2英雄基础教程 噬魂鬼
2014/01/03 DOTA
[07:20]2018DOTA2国际邀请赛寻真——逐梦Mineski
2018/08/10 DOTA
python中的一些类型转换函数小结
2013/02/10 Python
python中的break、continue、exit()、pass全面解析
2017/08/05 Python
matplotlib绘图实例演示标记路径
2018/01/23 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
CSS3线性渐变简单实现以及该属性在浏览器中的不同
2012/12/12 HTML / CSS
利用CSS3伪元素实现逐渐发光的方格边框
2017/05/07 HTML / CSS
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
.NET笔试题(20个问题)
2016/02/02 面试题
关于做家务的心得体会
2016/01/23 职场文书
Pytest之测试命名规则的使用
2021/04/16 Python