我有这个问题:
UPDATE table_name
SET field_1 = field_1 +100,
field_2 = field_2 +100,
field_3 = field_3 +100
WHERE id = 1
LIMIT 1;
其中Field_1是常规整数,Field_2是十进制(15,6),Field_3是双精度(15,6)。当我从php脚本运行此查询时,他们只更新field_1并且没有任何事情发生在field_2和field_3,他们就像以前一样。但是当我在phpMyAdmin中运行它没有任何问题。
我试图锁定表,在运行更新之前make round(),没有任何帮助。
请帮忙...为什么我不能从PHP更新十进制和浮点字段?
PHP版本:5.2 Mysql版本5
什么都没有帮助。但我找到了一个小解决方案(我想要离开它)。当我运行下一个查询时
INSERT INTO error SET error_type = ' ;
当然这是返回错误,但先前的查询更新更新所有字段。
有什么建议吗?
发布于 2018-08-28 13:07:00
首先,您必须要求在PHP脚本中将积分值100转换为十进制和双重类型值。$ num = number_format(100,6,'。',''); 执行此操作后...通过将$ num添加到小数和双精度字段值来完成更新操作...
发布于 2018-08-28 14:18:31
其中一个可能的问题:
语言环境。如果您使用非英语 - 美国语言环境,则有可能您的数字被错误地解释 - 小数分隔符不是“。”,而是“,”,只需尝试插入“,”而不是“。” 在您的浮点数中,看看会发生什么。如果是这样的话,你将不得不在PHP中编写转换函数(PHPAdmin具有,这就是为什么你不会遇到问题),或者更改语言环境。
https://stackoverflow.com/questions/-100000680
复制相似问题