我有一个书桌和状态栏(比特类型),我在编辑书籍信息表时有3种情况。
因此对于第三种情况,如果没有设置值,我必须忽略状态列,我有什么办法吗?请帮帮我
这是我的更新查询
$this->db->query('UPDATE books SET book_title = :title, file_type = :file_type, status = :status WHERE id = :id');
$this->db->bind(':title', $data['title']);
$this->db->bind(':file_type', $data['file_type']);
$this->db->bind(':status', $data['availability']);
$this->db->bind(':id', $data['id']);
答案 0 :(得分:1)
如果您不想更新状态,可以使用mysql的ifnull()
并为状态传递null。我们的想法是,如果你传递null,你只需将值保留原样......
$this->db->query('UPDATE books
SET book_title = :title, file_type = :file_type,
status = ifnull(:status,status)
WHERE id = :id');
$this->db->bind(':title', $data['title']);
$this->db->bind(':file_type', $data['file_type']);
if () { // You want to set the value
$this->db->bind(':status', $data['availability']);
}
else { // leave value as is
$this->db->bind(':status', null);
}
$this->db->bind(':id', $data['id']);
您需要完成if()
位以确定您希望如何发生此逻辑。