MySQL を単独で使用する - 次のようなテーブルに基本的な更新を行う場合:
UPDATE `SOMETABLE` SET `NAME` = 'John' WHERE `ID` = 1;
そしてNAME
= ' John ' の値はすでに ' John ' でした - 言い換えれば - 何も新しくも更新するものもありません。MySQL は「影響を受ける行: 0 (クエリに 0.0007 秒かかりました)」を返します。
CodeIgniter を使用して同じ呼び出しを行い、影響を受ける行を次のように取得すると、次のようになります。
$data = array(
'NAME' => 'John'
);
$this->db->where('ID', 1);
$this->db->update('SOMETABLE', $data);
$affect = $this->db->affected_rows();
echo $affect; // $affect echos 1
$affectは最終的に 1 になります。私はこれに問題はありません。更新するものが何もない場合、codeigniter は MySQL と同じように動作し、更新する必要のないものは編集しないと予想していました。 related_rows() の場合は 0 を返します。
- 私はこれを何らかの方法で間違っていますか?
- codeigniter は ' John ' を上書きしていますか? か否か?