Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在某些机器上通过PHP PDO驱动程序从MySQL获取错误值_Php_Mysql_Laravel_Pdo - Fatal编程技术网

在某些机器上通过PHP PDO驱动程序从MySQL获取错误值

在某些机器上通过PHP PDO驱动程序从MySQL获取错误值,php,mysql,laravel,pdo,Php,Mysql,Laravel,Pdo,我有一个MySQL InnoDB表,带有float 8,2字段。它存储的值为7221.00 我用的是拉威尔。从数据库检索数据时,我注意到我得到的是7200而不是7221.00。在我们的团队中,两个开发人员报告有相同的问题,但其他两个开发人员没有这个问题-他们看到了正确的值 在通过Laravel代码进行调试时,我发现从PDO fetchAll读取数据后,数据是错误的 我们已经比较了MySQL和php_pdo_MySQL.dll版本在工作和中断服务器配置之间的差异。虽然我们看到了差异,但我们不确定在

我有一个MySQL InnoDB表,带有float 8,2字段。它存储的值为7221.00

我用的是拉威尔。从数据库检索数据时,我注意到我得到的是7200而不是7221.00。在我们的团队中,两个开发人员报告有相同的问题,但其他两个开发人员没有这个问题-他们看到了正确的值

在通过Laravel代码进行调试时,我发现从PDO fetchAll读取数据后,数据是错误的

我们已经比较了MySQL和php_pdo_MySQL.dll版本在工作和中断服务器配置之间的差异。虽然我们看到了差异,但我们不确定在哪里找到真正的罪魁祸首,也不确定我们是否应该升级或降级我们的PHP、PDO、MySQL或所有这些

以下是我们的观察结果

损坏的服务器之一:

MySQL:

protocol_version    10
version 5.1.41-log
version_comment Source distribution
version_compile_machine ia32
version_compile_os  Win32
protocol_version 10
version 5.6.20
version_comment MySQL Community Server (GPL)
version_compile_machine x86
version_compile_os Win32
php_pdo_mysql.dll文件版本:

5.6.4.0
5.5.15.0
工作服务器之一:

MySQL:

protocol_version    10
version 5.1.41-log
version_comment Source distribution
version_compile_machine ia32
version_compile_os  Win32
protocol_version 10
version 5.6.20
version_comment MySQL Community Server (GPL)
version_compile_machine x86
version_compile_os Win32
php_pdo_mysql.dll文件版本:

5.6.4.0
5.5.15.0
为了让事情变得更加混乱,可以通过Laravel和PDO通过相同的PHP应用程序存储来自损坏服务器的任何值,并通过SQLYog正确地存储7221.00值。SQLYog中的SQL查询也会返回正确的值。在我们的应用程序中,只有读取操作在某些服务器上出错


我们坏掉的服务器怎么了?从7221.00变为7200的罪魁祸首在哪里?

我特别记得不久前在我的团队中发生过这样的情况。问题不是PDO,而是数据库中存储的值。长话短说,用十进制代替浮点数。谢谢,安德烈,我在其他一些网站上看到过类似的建议。但令人困惑的是,为什么在某些服务器上完全相同的数据库工作得很好。我很想回答这个问题,但这有点超出了我的工资等级。既然你提到了,我也有点古玩。。。