[英]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 将无法理解这些是函数。 它只是将它们添加为字符串。
将IF
、 CONCAT
、 ISNULL
放入 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.