我的开发计算机(Win7 Pro)使用XAMPP在Apache下运行PHP 5.5.11,并运行MS Access 2013.生产服务器(WinServer 2012)在IIS 8下运行PHP 5.6,并运行MS Access 2010。数据在开发和生产数据库中,当然是相同的。
我正在使用PHP页面生成生产报告,其中包括计算feetProduced * weightPerFt以确定以不同间隔生成的材料的总重量。我的PHP代码(使用PDO_ODBC)中的相同选择查询在生产服务器上与我的开发计算机上执行时会产生不同的结果...特别是在查询weightPerFt时,这是一个浮点值(Access中的单个值)。几乎所有的值都是< 0.1在选择查询结果中返回为E-2,并在以后的计算中将其视为零。其他是1.2345E-1等。这很好。但是在我的开发PC上,我总是得到适当的浮动值(2.334E-2,2.23E-1或其他)。
之前有人见过这个和/或对原因有任何想法吗?也许是由于不同的PHP版本和/或PDO驱动程序?如果是这样的话,那个旧的似乎更好!
编辑:为了澄清,在完成任何计算之前,我从相同的单个字段获得不同的结果。例如,假设我有一个包含单个列的表(wtPerFt)和一个在该列中值为0.025的行。使用PHP,如果我运行"从myTable中选择wtPerFt"在我的开发PC上,我得到了" 2.5E-2,"但是在生产服务器上,我得到了E-2" (评估为零)。这些是使用print_r()打印到屏幕上的值。相同的查询,相同的数据库(副本),不同的计算机。
我已使用
实施了一种解决方法SELECT weightPerFt * 100 AS weightPerFt...
然后用我的后续计算补偿
lbsProduced = feetProduced * (weightPerFt / 100)
所以这不是一个严重的问题,它只会让我感到恼火。