I don't reproduce it. It's not the same unit work on your demo environement.
I have localised my problem. On you code, when I do this request :
insert into work ( inputUser , inputDateTime , manual , idResource , idProject , refType , refId , idAssignment , work , workDate , day , week , month , year , dailyCost ) values ('7', '2021-08-17 10:22:32', '0', '7', '419', 'Activity', '876', '5188', '0,14286', '2021-08-16', '20210816', '202133', '202108', '2021', '0.00');
=> I can show that the value of work is 0,14286 but my query has a warning when I execute it. If I replace the value of work by 0.14286 I doesn't have the problem.
(I do the request on my mysql server directly)
For information, the update query is : update work set inputDateTime='2021-08-17 10:39:39' , work='0.14286' , cost='0' where id=78554
=> Value of work is good. I don't know why
Do you know where I can search it ? Is it my mysql server ? My version of MYSQL is : 5.7.21
In more, in the method updateSqlElement, I have this code to convert data ',' => '.' with decimal value.
if ($dataType == 'decimal') {
$col_new_value = str_replace ( ',', '.', $col_new_value );
}
But, I don't have the same code in insertSqlElement. Why it's not the same ?