【发布时间】:2013-10-15 12:21:43
【问题描述】:
我正在使用 PostgreSQL 和 Codeigniter。数据库中有一个名为 folio 的表。它也有几列包含remarks1, remarks2, remarks3。当第一次执行 INSERT 语句时,将插入所有其他列的数据。
当我稍后尝试对以下 3 列执行下面的 UPDATE 语句时,remarks1 列得到正确更新。但是remarks2, remarks3 列更新为''。
UPDATE "folio" SET "remarks1" = 'test remark', "remarks2" = '', "remarks3" = '' WHERE "id" = '51';
假设remarks1, remarks2, remarks3 列数据类型为character varying。我正在使用 Codeigniter 活动记录。一次可以更新所有 3 列,否则可以根据用户输入更新单个列。
可能是什么问题?我怎样才能解决这个问题?为什么用'' 更新列?
根据要求,CI 中的 php 数组将在下面
$data = array(
'remark1' => $this->input->post('remark1'),
'remark2' => $this->input->post('remark1'),
'remark3' => $this->input->post('remark1')
);
保存数据的函数只有以下两行
$this->db->where('id', $folio_id);
$this->db->update('folio', $data);
【问题讨论】:
-
UPDATE "folio" SET "remarks1" = 'test remark', "remarks2" = 'moreinfo', "remarks3" = 'minfopart2' WHERE "id" = '51'; ???
-
` WHERE "id" = '51';` 是
idchar 还是 varchar 列?如果不是:删除引号:WHERE "Id" = 51(顺便说一句:你前世接触过 mysql 吗?) -
它是由 CI 生成的 :-(
标签: php sql codeigniter postgresql sql-update