Вы не цитируете location
, поэтому MySQL видит простой 43.78219 -75.00326
внутри ЗНАЧЕНИЙ и интерпретирует его как выражение с плавающей запятой.Вам также следует использовать метод quote
для правильного экранирования строк:
db.query("insert into StationCapacityStatus
(city_id, station_id, location, empty_docks, nonempty_docks, timestamp)
values(
23,
#{$station_number},
'#{db.quote(location)}',
#{$empty_docks},
#{$nonempty_docks},
#{$datetime}
)"
)
Вы также должны переключиться на подготовленные операторы со связанными значениями, если это возможно:
sth = db.prepare('insert into StationCapacityStatus (city_id, station_id, location, empty_docks, nonempty_docks, timestamp) values (?, ?, ?, ?, ?, ?)')
sth.execute(23, $station_number, location, $empty_docks, $nonempty_docks, $datetime)