mysql - 为什么将文本附加到字段中并全部替换为 0

标签 mysql sql

 $invoice_id = $data['invoice_id'];
        $remark = '  ### Manually set as Paid Note: '.$data['paid_note'].' ###';
        $sql = "UPDATE tbl_invoice SET payment_status = 1, remark = remark+'$remark' WHERE invoice_id = $invoice_id";

这应该为“备注”字段附加新值。但备注字段更新为“0”。奇怪的!无法找出我的代码出了什么问题。任何想法?

注意:我正在使用 MySql DBMS。

最佳答案

你应该学会使用参数。但你的问题是使用 +,这是加法。我猜你想要字符串连接:

UPDATE tbl_invoice
    SET payment_status = 1,
        remark = CONCAT(remark, '$remark')
    WHERE invoice_id = $invoice_id;

但是,代码应该看起来更像这样:

UPDATE tbl_invoice
    SET payment_status = 1,
        remark = CONCAT(remark, ?)
    WHERE invoice_id = ?;

其中 ? 是参数的占位符。

关于mysql - 为什么将文本附加到字段中并全部替换为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49129629/

相关文章:

mysql - 如何从mysql中的每周信息计算每月数据

sql - 如何让 SQL Management Studio 看到新表?

mysql - SQL : how to select different rows where values are equal to an set of values?

sql - 在更新语句中具有选择子查询的嵌套 SQL 查询

c# - WHERE 上的 SQL Server 查询错误

mysql - SQL内部连接顺序问题

mysql - AWS Aurora 与 MySQL 的兼容性

mysql - mysql 内出错,之前发现了别名

php - 错误 : Every derived table must have its own alias

sql - 在oracle中连接值