繁体   English   中英

Codeigniter 4 查询 IF ISNULL

[英]Codeigniter 4 query IF ISNULL

我从 Codeigniter 3 迁移到 Codeigniter 4 并且下一个查询对我来说是有问题的。

在 Codeigniter 3 中,查询为:

$this->db->query("UPDATE myTable SET data = '$data', 
                                myData = IF ( ISNULL(myData), '$state', CONCAT('$state', '-', myData) ) 
                        WHERE id = '$id'");

我试图用下一种格式改变它:

$data = array(
            'myData' => "IF( ISNULL(myData), " . $state. ", CONCAT(" . $state. ", '-', myData')")
        );

但是,function 会更新 $myData 的内容,如字符串“IF( ISNULL(myData), ".stateOfExample.", CONCAT(".stateOfExample.", '-', myData')"。

我查看了 CI4 文档,但我还没有找到开发此查询的方法。 我找到了使用 where() CI function 的方法,但我认为这不是最好的方法。

提前致谢

如果您将 SQL 函数放入数据中,codeigniter 将无法理解这些是函数。 它只是将它们添加为字符串。

IFCONCATISNULL放入 sql 并仅将数据数组用于变量。

$this->db->query("UPDATE myTable SET data = ?, 
    myData = IF ( ISNULL(myData), ?, CONCAT(?, '-', myData) ) 
    WHERE id = ?", array($data, $state, $state, $id));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM