时间:2021-05-25
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://mand#update-detail
看到return那一项是
复制代码 代码如下:
{return} integer number of rows affected by the execution.
瞬间明白问题了,因为有的时候可能没有改数据但是触发了更新操作,所以这时候受更改的行数为0,返回的判断就进入到错误代码里。。
同理,delete() 和 insert() 的方法返回值意义也是受到影响的行数,所以delete和insert可以根据返回值是否大于0来判断操作是否成功,但是update操作不一定,返回值为0也有可能表示对DB操作成功。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Yii2框架中日志的使用方法。分享给大家供大家参考,具体如下:Yii2和Yii1.x的区别Yii2里面日志的使用方法和Yii1.x并不相同,在Yi
本文实例讲述了Yii框架Session与Cookie使用方法。分享给大家供大家参考,具体如下:YiiSession使用publicfunctionactionI
本文实例讲述了Yii框架的redis命令使用方法。分享给大家供大家参考,具体如下:redis->set('user','aaa');\Yii::$app->re
本文实例讲述了yii,CI,yaf框架+smarty模板使用方法。分享给大家供大家参考,具体如下:最近折腾了框架的性能测试,其中需要测试各个模板跟smarty配
ExecuteNonQuery()方法主要用户更新数据,通常它使用Update,Insert,Delete语句来操作数据库,其方法返回值意义:对于Update,