首页 > 解决方案 > 定义列名时的错误请求

问题描述

SQL:

select distinct b.nom, b.moyenne_pond
from previ.rdt_usine b
join previ.rdt r on (r.id_us=b.id_us)
where st_intersects(st_transform(st_setsrid(st_makepoint(55.40513629386126, -21.23713970920021), 4326), 32740),b.geom)
and r.annee=2018;

PHP:

$query = 'select distinct "b.nom", "b.moyenne_pond" 
        from "previ"."'.$name_table.'" b
        join "previ"."rdt" r on (r.id_us=b.id_us)
        where st_intersects(st_transform(st_setsrid(st_makepoint(?, ?), 4326), 32740), b.geom)
        and r.annee=?';
$data = $db->select($query, $coord);
//$coord is an array of data

当我尝试使用我的请求时,我有一个 this : column "b.nom" doesn't exist,但是当我在 pgAdmin 中尝试查询时,查询成功了,您可以看到查询完全相同

标签: laravelpostgresql

解决方案


删除双引号并添加反引号

   $query = 'select distinct `b.nom`, `b.moyenne_pond` 
    from `previ`.`$name_table` as  b
    join `previ`.`rdt` as r on (r.id_us=b.id_us)
    where st_intersects(st_transform(st_setsrid(st_makepoint(?, ?), 4326), 32740), b.geom)
    and r.annee=?';

推荐阅读