php - Codeigniter 3.1 IFNULL 和 Coalesce 不起作用?

标签 php mysql codeigniter

我正在开发一个上传图像表单来更新数据库中的记录。逻辑是 if (isset($valueofupload)) then 更新记录。

我尝试在 Codeigniter 中使用 IFNULLCOALESCE,但它不起作用。

代码如下:

$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/

相关文章:

php - 使用 LIMIT 时获取总行数

php - Zend 框架 2 - 如何制作语言切换器

php - Laravel 5 - 多对多关系 - 获取枢轴数据

javascript - 在 CodeIgniter 的 AJAX 成功函数中提交动态创建的表单

php - Codeigniter - 当 URL 以斜杠结尾时,相对 URL 停止工作?

php - 将ajax数据发布到mysql中

javascript - 如何在 Express 路线内使用另一个函数/多个函数来操作数据库中的数据?

mysql - 用于 MySQL 连接错误的 LINQPad + IQ 驱动程序 : Bad handshake

php - 在php while循环中显示其他表的数据

php - 使用 Codeigniter 制作面包屑的最佳方法是什么?