¿Cómo inserto un punto espacial mysql con un modelo yii?

Tengo un tipo de modelo que se generó a partir de una tabla mysql que tiene datos de dirección y también un espacioPOINT campo llamado "coordenadas". Cuando se crea o actualiza un modelo, quiero geocodificar la dirección y almacenar las coordenadas de latitud y longitud en elPOINT campo.

Mi entendimiento es que la manera de hacer esto es geocodificar la dirección en el modelobeforeSave método. He hecho esto y tengo las coordenadas en una matriz asociativa. Ahora mi pregunta es ¿cómo puedo insertar estos datos en mi campo de coordenadas? Esto es lo que estoy intentando:

public function beforeSave()
{
    $singleLineAddress = $this->getSingleLineAddress();
    $coords = Geocoder::getCoordinates($singleLineAddress);

    // WORKS: using the following line works to insert POINT(0 0)
    //$this->coordinates = new CDbExpression("GeomFromText('POINT(0 0)')");

    // DOESN'T WORK: using the following line gives an error
    $this->coordinates = new CDbExpression("GeomFromText('POINT(:lat :lng)')",
        array(':lat' => $coords['lat'], ':lng' => $coords['lng'] ));

    return parent::beforeSave();
}

Cuando hago esto me sale el siguiente error:

CDbCommand no pudo ejecutar la sentencia SQL: SQLSTATE [HY093]: Número de parámetro no válido: el número de variables enlazadas no coincide con el número de tokens. La sentencia SQL ejecutada fue: INSERT INTOplace (city, state, name, street, postal_code, phone, created, coordinates) VALORES (: yp0,: yp1,: yp2,: yp3,: yp4,: yp5, UTC_TIMESTAMP (), GeomFromText ('POINT (: lat: lng)'))

Respuestas a la pregunta(2)

Su respuesta a la pregunta