Zend Framework с пространственным - PullRequest
2 голосов
/ 21 июля 2010

Я использую Zend Framework с MySQL.Я использую Zend_Db_Table_Abstract для выполнения запросов.У меня есть пространственное поле в таблице:

Страна:

+------------+---------+------+-----+---------+----------------+
| Field      | Type    | Null | Key | Default | Extra          |
+------------+---------+------+-----+---------+----------------+
| id         | int(11) | NO   | PRI | NULL    | auto_increment |
| region_id  | int(5)  | NO   |     | NULL    |                |
| coordinate | point   | NO   | MUL | NULL    |                |
+------------+---------+------+-----+---------+----------------+

Я пытаюсь вставить запись в эту таблицу, но я получил ошибку:

Zend_Db_Statement_Exception: SQLSTATE[22003]: Numeric value out of range: 1416 Cannot get geometry object from data you send to the GEOMETRY field .

этим:

$this->insert(array('region_id'=>'1','coordinate'=>"GeomFromText( 'POINT(-12.461334 130.841904)'"));

Может кто-нибудь помочь?

Ответы [ 2 ]

5 голосов
/ 23 июля 2010
$coordinate  = "GeomFromText( 'POINT(-12.461334 130.841904)')"; 

$this->insert(array('region_id'=>'1','coordinate'=>new Zend_Db_Expr($coordinate)));
1 голос
/ 10 августа 2011

Билл Ящер понял все правильно (да, Оливер ... он имел в виду "$ координата", а не "$ пространственный" в строке 2).

Я хотел, чтобы мой код был в одном выражении, поэтомуЯ использовал следующее:

$this->insert(array(
'region_id'=>'1',
'coordinate'=>new Zend_Db_Expr("GeomFromText( 'POINT(-12.461334 130.841904)')")
));
...