CakePHP アプリケーションで PostGIS の作業を行っています。
私はいくつかのデータベース関数を扱ってきたので$this->query()
、データの挿入を行うために raw 呼び出しを行いました。挿入クエリの結果の ID を取得する必要があるところですが$this->query()
、空の配列が返されます。
挿入に使用しているクエリは次のとおりです。
INSERT INTO locations (title,company_id,state_id,poly,point)
VALUES ('$title',$company_id,$state_id,ST_GeomFromText('$geom',4269),$point);
問題は、Cake が'ST_GeomFromText('$geom',4269)'
文字列として挿入しようとしていることです。また、Cake が準備する SQL 挿入ステートメントの引用符を削除する方法がわかりません$this->Location->save();
。
助言がありますか?
編集:
私がやっている前に$this->query();
、私のSQLは正常に動作します。それは問題ではありません。
今私がするとき:
$this->Location->create();
$this->Location->set('poly',$poly);
... Set all the rest of the model fields ...
$this->Location->save();
生成される SQL は次のようになります。
INSERT INTO locations (title,company_id,state_id,poly,point)
VALUES ('Some Title',5,23,'ST_GeomFromText('$geom',4269)',POINT(-72.342,102.23455);
ST_GeomFromText は「引用」されるため、PostgreSQL はエラーをスローし、ジオメトリを挿入しません。