我正在处理更新数据库记录的上传图片表单。逻辑为if (isset($valueofupload))
然后更新记录。
我尝试在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));
答案 0 :(得分:0)
你的问题有点模糊。但根据我的理解,如果前者为空,您希望使用location_pic
或$arr_newname['0']
更新某些事件记录的$row['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中阅读有关null coalesce operator(??
)的更多信息:
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]);
// ...
}