yii框架builder、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操作成功。
相关文章
Zend Framework教程之Zend_Db_Table_Row用法实例分析
这篇文章主要介绍了Zend Framework教程之Zend_Db_Table_Row用法,详细讲述了Zend_Db_Table_Row的功能,并结合实例形式详细分析了Zend_Db_Table_Row操作数据的相关技巧,需要的朋友可以参考下2016-03-03
laravel在中间件内生成参数并且传递到控制器中的2种姿势
今天小编就为大家分享一篇laravel在中间件内生成参数并且传递到控制器中的2种姿势,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-10-10
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
今天小编就为大家分享一篇Laravel 解决419错误 -ajax请求错误的问题(CSRF验证),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-10-10
php curl获取到json对象并转成数组array的方法
今天小编就为大家分享一篇php curl获取到json对象并转成数组array的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-05-05


最新评论