[英]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.