Floats casted to strings are locale dependant. Use sprintf() with %F instead.
authorJan Schneider <jan@horde.org>
Thu, 11 Feb 2010 17:50:49 +0000 (18:50 +0100)
committerJan Schneider <jan@horde.org>
Thu, 11 Feb 2010 18:01:49 +0000 (19:01 +0100)
kronolith/lib/Geo/Mysql.php

index 13514e6..0d145d8 100644 (file)
@@ -44,9 +44,9 @@ class Kronolith_Geo_Mysql extends Kronolith_Geo_Sql
 
         /* INSERT or UPDATE */
         if ($count) {
-            $sql = "UPDATE kronolith_events_geo SET event_coordinates = GeomFromText('POINT(" . (float)$point['lat'] . " " . (float)$point['lon'] . ")') WHERE event_id = ?";
+            $sql = sprintf('UPDATE kronolith_events_geo SET event_coordinates = GeomFromText(\'POINT(%F %F)\') WHERE event_id = ?', $point['lat'], $point['lon']);
         } else {
-            $sql = "INSERT into kronolith_events_geo (event_id, event_coordinates) VALUES(?, GeomFromText('POINT(" . (float)$point['lat'] . " " . (float)$point['lon'] . ")'))";
+            $sql = sprintf('INSERT into kronolith_events_geo (event_id, event_coordinates) VALUES(?, GeomFromText(\'POINT(%F %F)\'))', $point['lat'], $point['lon']);
         }
         $result = $this->_write_db->query($sql, array($event_id));
         if ($result instanceof PEAR_Error) {