以特定格式将数组保存到MySQL

时间:2015-11-13 19:29:36

标签: javascript mysql arrays

我有一个将数据提交到MySQL表的表单。具体来说,它使用的是Gravity Forms,一个用于WordPress的插件,但这并不是真正与插件或WP有关。我只想弄清楚如何格式化我的数据,以便在MySQL中以正确的格式存储。

我正在使用Google Maps Javascript API查看特定字段,执行Google地图的自动填写以检索地点,然后获取该地点的名称(这是API返回的名称)并使用Google Maps Geocoding API可添加纬度和经度。

我知道我需要存储在数据库中的信息,如下所示:

a:3:{s:7:"address";s:12:"101 First St";s:3:"lat";s:10:"25.8018672";s:3:"lng";s:18:"-80.12885949999998";}

所以我试图通过将我成功获得的动态内容(例如实际街道地址,纬度和经度)组合在一个变量中来为输入创建一个值:

place_shebang = 'a:3:{s:7:"address";s:' + place_name_length + ':"' + theplacename + '";s:3:"lat";s:' + place_lat_length + ':"' + theplacelat + '";s:3:"lng";s:' + place_lng_length + ':"' + theplacelng + '";}';

但是当我在MySQL中查看时,这样可以保存数据:

s:117:"a:3:{s:7:"address";s:12:"101 First St";s:3:"lat";s:undefined:"40.528263";s:3:"lng";s:undefined:"-78.86381770000003";}";

所以我的问题是,我应该如何处理place_shebang才能以正确的格式存储它?

1 个答案:

答案 0 :(得分:3)

不是创建序列化字符串,而是重新创建对象并保存。

$place_shebang = [
  "address" => $theplacename,
  "lat"     => $theplacelat,
  "lng"     => $theplacelng,
];