程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> yii框架builder、update、delete使用方法

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

編輯:關於PHP編程

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved