时间:2021-07-01 10:21:17 帮助过:29人阅读
在写一个语句的时候遇到这样一个问题:
$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:: return Ok('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操作成功。
相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
推荐阅读:
PHP7基于函数方式使用lib库案例代码分析
PHP怎样做出一个可添加水印与生成缩略图的类
以上就是yii框架builder、update、delete使用步骤详解的详细内容,更多请关注Gxl网其它相关文章!