我正在开发一个上传图像表单来更新数据库中的记录。逻辑是 if (isset($valueofupload))
then 更新记录。
我尝试在 Codeigniter 中使用 IFNULL
或 COALESCE
,但它不起作用。
代码如下:
$row = $rs->row_array();
$sql = "UPDATE table
SET location_pic = IFNULL(?, ?) WHERE event_id = ?";
$query = $this->db->query($sql, array($arr_newname['0'], $row['location_pic'], $id));
最佳答案
你的问题有点模糊。但据我了解,您想要使用 $arr_newname['0']
或 $row['location_pic']< 更新某些事件记录的
如果前者为空。你为什么不试试这个呢? location_pic
字段
$row = $rs->row_array();
$sql = "UPDATE table SET location_pic = ? WHERE event_id = ?";
$query = $this->db->query($sql, [
$arr_newname['0'] ?? $row['location_pic'],
$id // Probably $row->id ?
]);
了解有关 PHP 7 中空合并运算符 (??
) 的更多信息:
https://secure.php.net/manual/en/migration70.new-features.php
或者,如果您想在设置了 $arr_newname['0']
的情况下更新记录,为什么不呢:
if (isset($arr_newname['0'])) {
// ...
$sql = "UPDATE table SET location_pic = ? WHERE event_id = ?";
$query = $this->db->query($sql, [$arr_newname['0'], $id]);
// ...
}
关于php - Codeigniter 3.1 IFNULL 和 Coalesce 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40736166/