1

我正在尝试将导入脚本从 csv 导入 post_gis,所有内容都会导入,直到我添加 the_geom 列。我不知道在哪里放置st_geomfromtext('POINT( VARIABLE ,27700)')引号并且不断收到与引号有关的错误,所以我知道我在放置它们时做错了。

这个脚本(完整版)是按照这个John Boy 教程创建的

 $sql ="INSERT INTO teams_tbl (team_id, name,  the_geom) VALUES 
            ( 
                '".addslashes($data[0])."', 
                '".addslashes($data[1])."', 
                'st_geomfromtext('POINT(".addslashes($data[2])."27700)')'

          ) 
        "; 
4

1 回答 1

1

为了帮助您克服引号放置问题,我建议使用准备好的语句

// Prepare a query for execution
$result = pg_prepare(
    $dbconn,
    "my_query",
    'INSERT INTO teams_tbl (team_id, name, the_geom) '
    . 'VALUES ($1, $2, st_geomfromtext($3))');

// Prepare the string to be inserted as the_geom
$the_geom = "POINT(" . $data[2]. ", 27700)";

// Execute the prepared query using your variables.
// Note that it is not necessary to escape them
$result = pg_execute($dbconn, "my_query", $data[0], $data[1], $the_geom);

您可以稍后使用不同的参数执行相同的准备好的查询,这在循环中非常有用。

注意:我不知道你的$data变量中存储了什么样的数据,但在这种情况下,你可以确定问题不是引号,而是你数据中的任何内容。

于 2013-10-17T08:39:34.877 回答