簡體   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