我正在尝试将数据加载到 Postgres 表中。脚本和数据位于本地 Open Server 服务器上,数据库位于另一台远程服务器上,我可以完全访问该服务器(我通过数据库管理器连接到数据库并编辑所有内容)。启动脚本时,连接数据库成功,但 INSERT INTO 查询不起作用:
$pg = "INSERT INTO public.1253_data () VALUES " . implode(",", $temp_array);
pg_query 函数抛出错误,写道:警告:pg_query():查询失败:语法错误(近似位置:.1253_data)。
我正在运行 pg_result_query() 函数:
$result = pg_query($conn, $sql);
if ($result) {
echo "New record created successfully";
} else {
$k = pg_get_result($result);
echo 'Query failed1: ' . pg_result_error($k);
}
pg_close($conn);
结果,pg_result_error 返回空:
从文档来看,pg_result_gives 只有在没有错误的情况下才会给出这个。但是为什么 pg_query 自己的错误描述符是这样的呢?
我刚刚开始学习 pg,我尝试了一切以寻找错误(专家,告诉我,它可能是什么?

正如文档中明确指出的那样
pg_querypg_result_error描述中已经明确说明说明您对收到的错误文本不满意的地方。相当明确的错误信息,甚至指向问题区域。相当合理地表明语法错误。事实上,根据 SQL 语法,标识符不能以数字开头:
如果出于某种晦涩的原因,您想以这种方式命名表,则必须使用
quoted identifier语法来引用它。那是,但最好再想想为什么。这种表命名让我想到 1253 是来自另一个表的某种外部标识符(用户 id 或类似的东西)——也就是说,一个明确的数据库模式设计错误。
您对 INSERT 使用了不正确的语法。括号应该围绕值:
它应该是这样的:
并确保您的值
temp_array与表中的列匹配。最好明确列出列: