0

我有两个请求的结果,其中包含十进制数字 8,2。

我尝试减去这个 var 并将结果添加到数据库中。

通常我确实喜欢 $var1-$var2

所以我有以下要求:

$requete= 'UPDATE `decompte` SET
principal_s         = '.$pay['principal_s']-$donnees2['principal_s'].',
clause_penale_s     = '.$pay['clause_penale_s']-$donnees2['clause_penale_s'].',
domages_interets_s  = '.$pay['domages_interets_s']-$donnees2['domages_interets_s'].',
art700_cpc_s        = '.$pay['art700_cpc_s']-$donnees2['art_700_cpc_s'].',
art475_1_cpp_s      = '.$pay['art475_1_cpp_s']-$donnees2['art475_1_cpp_s'].',
art_441_6_cc_s      = '.$pay['art_441_6_cc_s']-$donnees2['art_441_6_cc_s'].',
frais_ar_s          = '.$pay['frais_ar_s']-$donnees2['frais_ar_s'].',
agios_s             = '.$pay['agios_s']-$donnees2['agios_s'].',
depens_s            = '.$pay['depens_s']-$donnees2['depens_s'].',
frais_execution_s   = '.$pay['frais_execution_s']-$donnees2['frais_execution_s'].',
contrib_aid_juridiq_s   = '.$pay['contrib_aid_juridiq_s']-$donnees2['contrib_aid_juridiq_s'].',
frais_greffe_s          = '.$pay['frais_greffe_s']-$donnees2['frais_greffe_s'].'';

mysql_query($requete) or die(__LINE__.mysql_error().$requete); 

问题是它向我显示了一个错误,它说:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1-5000 行的“-5000”附近使用正确的语法。

我有点迷茫,我真的不明白那里发生了什么。

任何帮助或建议将不胜感激

4

2 回答 2

3

把所有的减法放在括号内。例如:

principal_s         = '.($pay['principal_s']-$donnees2['principal_s']).',
clause_penale_s     = '.($pay['clause_penale_s']-$donnees2['clause_penale_s']).',

PHP首先执行连接,然后计算算术运算!

于 2012-10-05T15:11:29.010 回答
1

这是 PHP 的一个有趣问题。

连接运算符在减法运算符之前进行评估。

如果将行括在括号中,它将起作用:

principal_s         = '.($pay['principal_s']-$donnees2['principal_s']).',

在我弄清楚是什么原因之前,这个问题在一个月左右给我带来了几个小时的压力。

于 2012-10-05T15:10:30.200 回答