'Insert and query MySQL point value returns ASCII

I have a bit of a strange problem. I’m trying to insert MySQL point coordinates and return in PHP, but I get ASCII put instead of coordinates.

This is my SQL

CREATE TABLE `Grid` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `cntr_point` POINT DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB;

INSERT INTO `Grid`(cntr_point) 
VALUES(POINTFROMTEXT('POINT(49.227239 17.564932)'));

In PHP I have code such as this (which works for other fields):

$row['cntr_point']

But I get random ASCII character output such as this:

*H@v0b1@

When I would instead be expecting to see the coordinates I inserted. I seem to get the same even when I skip PHP and use something like SQLFiddle:

SQLFiddle



Solution 1:[1]

You can use ST_AsText:

SELECT id, ST_AsText(cntr_point) FROM Grid

Output: POINT(49.227239 17.564932)

Or you can use ST_X and ST_Y to get the coordinates:

SELECT id, ST_X(cntr_point), ST_Y(cntr_point) FROM Grid;

Fiddle

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1