2011-12-22 23 views
6

私はcodeigniterバージョン2.0.3を使用しています。

$this->db->affected_rows 

更新された行がない場合でも常に1が返されます。私は試しました

mysql_affected_rows() 

そして、クエリが失敗した場合は-1を返し、レコードが更新されていない場合は0を返します。

編集は、私はちょうど

$country_id = $this->input->post('country_id'); 
$time=$this->input->post('time'); 

$insert_array = array(
    'country' => $this->input->post('name') 
); 
$this->db->update('country_master', $insert_array, array("country_id" => $country_id,"last_updated"=>$time)); 
$afftectedRows=$this->db->affected_rows(); 
+1

コードを表示してもよろしいですか? –

+0

は、前に使用しているクエリに依存します $ this-> db-> affected_rows コードを表示することができれば、ソリューションを簡単に共有できます。 –

+0

H'mmmそれは私の部分からの誤りでした。今はうまく働いています – Nick

答えて

13

を使用してい

実は私のコードは、この

if (!$country_id) { 
    $this->db->insert('country_master', $insert_array); 
    $id = $this->db->insert_id(); 
} else { 
    $this->db->update('country_master', $insert_array, array("country_id" => $country_id, "last_updated" => $time)); 
} 
$afftectedRows = $this->db->affected_rows(); 

ようなものだったと私は

if (!$country_id) {     
    $this->db->insert('country_master', $insert_array); 
    $id = $this->db->insert_id(); 
} else { 
    $this->db->update('country_master', $insert_array, array("country_id" => $country_id, "last_updated" => $time)); 
    $afftectedRows = $this->db->affected_rows(); 
} 

にそれを修正私のコードを含んでおり、今はうまくいっている。

お返事ありがとうございます。

+1

ありがとう、@ニック。 複数の行を挿入しているときに影響を受ける行を取得する方法はありますか? –

関連する問題