MySQL(マイエスキューエル)

【MySQL】位置情報(座標)をGeometry型で扱う方法

【MySQL】Geometry型で位置情報(座標)を扱う

MySQLで位置情報(座標)を扱う場合には、Geometry型という便利な型があります。

Geometry型のカラムには、GeomFromTextでデータを作成して保存することになり、
以下の様な形式でSQLクエリを組み立てます。

INSERT INTO テーブル名 (カラム名) VALUES (GeomFromText('POINT(経度 緯度)'));
※経度と緯度の間は、半角スペースで区切ります。

例えば、
テーブル名「tbl_location」、カラム名「latlng」とすると、このようなSQLクエリを実行することになります。

INSERT INTO tbl_location (latlng) VALUES (GeomFromText('POINT(139.767125 35.681236)'));

ここまでは問題ないですね。

少しはまったのが、プリペアドステートメントでデータを挿入する場合です。
せっかくなので、メモ書き程度に情報を残しておきます。

【PHP】プリペアドステートメントでGeometry型の項目にデータ挿入

PHPでプログラムを組む場合、SQLインジェクション対策の為、上記のようなSQLでそのまま挿入するのではなく、
プリペアドステートメントで挿入されている方も多いと思います。

その場合には、
Geometry型の項目も当然それに合わせて設定します。

今回であれば、以下のようなコードでGeometry型の項目に値を挿入することが可能です。

$lat = "139.767125"; //経度
$lon = "35.681236"; //緯度

$query = "INSERT INTO tbl_location (latlng) VALUES (GeomFromText(:latlng));"
$stm = $pdo->prepare($query);
$stm->bindValue(":latlng", "POINT($lat $lon)", PDO::PARAM_STR);

0
この記事を書いている人
株式会社ディープ

名前ダッチ

メールアドレスadachi@deep-deep.jp

Twitterはこちら >>

  • コメント: 0

関連記事

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

【2,000円OFF キャンペーン実施中】↓

最近の記事

  1. WP:WordPress(ワードプレス)
  2. 色鉛筆
  3. WP:WordPress(ワードプレス)
  4. WP:WordPress(ワードプレス)
  5. WP:WordPress(ワードプレス)
  6. 文系と理系のメリットとデメリット
  7. 東京駅
  8. 残業
  9. プログラマーになるのに年齢は関係ある?
  10. 年収(収入)
【2,000円OFF キャンペーン実施中】↓

Twitter

ダッチ@職業ブロガー兼プログラマー
@gatsu0000

ConoHa WING 2周年キャンペーン中

アーカイブ

PAGE TOP