减去两年并将结果添加到mysql数据库

时间:2012-10-05 15:08:42

标签: php mysql variables substr

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

我尝试对此var进行减法并将结果添加到数据库中。

Usualy我喜欢$ 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”附近使用正确的语法。

我有点失落,我真的不知道那里发生了什么。

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

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

这是PHP的一个有趣问题。

在减法运算符之前计算连接运算符。

如果你用直线括起来,它会起作用:

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

这个问题在我找出导致它的原因之前一个月左右给我带来了几个小时的压力。