更新查询从codeigniter中的查询中删除引号

时间:2014-04-21 13:57:49

标签: codeigniter

我正在使用codeigniter和postgresql数据库 我想设置默认值,如果我们无法从$ _POST获得值或值==''或$ this-> input-> post()然后需要设置值DEFAULT但是每当codeigniter执行查询时它会追加引用像“DEFAULT”,但我想要我的查询如下例

示例:

Current Output :

update tablename set fieldname = 'DEFAULT' where 


Required Output :

update tablename set fieldname = DEFAULT  where condition

这里有codeigniter查询的问题,每当我要更新时,它会为DEFAULT值附加引号 每当我通过codeigniter

在数据库中执行查询时,请帮我删除核心文件中的引号

1 个答案:

答案 0 :(得分:0)

这是一个有效的问题。首先,在postgres中,例如CURRENT_DATECURRENT_TIMESTAMP或MySQL NOW()等常量,如果引用则会导致错误。我处理这些情况的方法是使用代码igniighter set函数,第三个参数设置为False,告诉代码ignighter为False,如下所示:

    $this->db->where('id',999);
    $this->db->set('draft', False);
    $this->db->set('submission_date', 'CURRENT_DATE', False);
    $this->db->set('status','ok');
    $this->db->update('projects');

这将产生以下查询:

UPDATE projects SET draft=False, submission_date=CURRENT_DATE, status='ok' WHERE id='999';

参考:https://www.codeigniter.com/userguide3/database/query_builder.html#inserting-data