首页 文章

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

提问于
浏览
0

我正在使用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

    这是一个有效的问题 . 首先,例如在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

相关问题