gpt4 book ai didi

php - 如何防止 CakePHP 在保存时转义数据?

转载 作者:行者123 更新时间:2023-11-29 13:33:25 25 4
gpt4 key购买 nike

我正在 CakePHP 应用程序上做一些 PostGIS 工作。

因为我一直在使用一些数据库函数,所以我完成了原始 $this->query() 调用来插入数据。我现在需要获取插入查询结果的 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)' 作为字符串插入,我不知道如何让它删除 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 抛出错误并且不插入几何。

最佳答案

事实证明,我的问题的解决方案不是基于 CakePHP 的,而是基于 PostgreSQL 的!

像这样将“RETURNING id”附加到查询中:

INSERT INTO locations (title,company_id,state_id,poly,point) 
VALUES ('$title',$company_id,$state_id,ST_GeomFromText('$geom',4269),$point) RETURNING id;

查询不再返回空数组,现在返回它刚刚创建的行的 ID!

关于php - 如何防止 CakePHP 在保存时转义数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18723248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com