From 12d4b52f105e6c84824eb5c8e6ca6d4996760e4d Mon Sep 17 00:00:00 2001 From: mark_story Date: Sat, 21 Aug 2010 00:49:40 -0400 Subject: [PATCH] Fixing failing tests in DboMysql and DboPostgres related to localized floats. Refs #1029 --- cake/libs/model/datasources/dbo/dbo_mysql.php | 15 +++++++++------ cake/libs/model/datasources/dbo/dbo_postgres.php | 5 ++++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/cake/libs/model/datasources/dbo/dbo_mysql.php b/cake/libs/model/datasources/dbo/dbo_mysql.php index 7b0bfea9bba..1ed2ae13afa 100644 --- a/cake/libs/model/datasources/dbo/dbo_mysql.php +++ b/cake/libs/model/datasources/dbo/dbo_mysql.php @@ -658,16 +658,19 @@ function value($data, $column = null, $safe = false) { if ($data === '') { return 'NULL'; } - if ((is_int($data) || is_float($data) || $data === '0') || ( + if (is_float($data)) { + return sprintf('%F', $data); + } + if ((is_int($data) || $data === '0') || ( is_numeric($data) && strpos($data, ',') === false && - $data[0] != '0' && strpos($data, 'e') === false)) { - return $data; - } + $data[0] != '0' && strpos($data, 'e') === false) + ) { + return $data; + } default: - $data = "'" . mysql_real_escape_string($data, $this->connection) . "'"; + return "'" . mysql_real_escape_string($data, $this->connection) . "'"; break; } - return $data; } /** diff --git a/cake/libs/model/datasources/dbo/dbo_postgres.php b/cake/libs/model/datasources/dbo/dbo_postgres.php index 6c692d94252..bd4e8562b4e 100644 --- a/cake/libs/model/datasources/dbo/dbo_postgres.php +++ b/cake/libs/model/datasources/dbo/dbo_postgres.php @@ -299,8 +299,11 @@ function value($data, $column = null, $read = true) { } switch($column) { - case 'inet': case 'float': + if (is_float($data)) { + $data = sprintf('%F', $data); + } + case 'inet': case 'integer': case 'date': case 'datetime':