我需要将一个 csv 文件导入到我的数据库中。我首先在 SQL 中编写了该函数,但现在我需要在 php 中完成它,我不想更改我的整个代码,所以我只是想我可以用 php 执行 SQL 查询,但出现错误。 $query="COPY bet_import FROM $1 DELIMITER ',' CSV HEADER"; $result = pg_prepare($dbh, "", $query); $result = pg_execute($dbh, "",array('bet.csv'));我收到错误:错误:警告:pg_prepare():查询失败:错误:“$1”处或附近的语法错误第 1 行:COPY bet_import FROM $1 DELIMITER ',' CSV HEADER
1 回答
炎炎设计
TA贡献1808条经验 获得超4个赞
您不能在准备语句中绑定标识符(表名、字段名)。您需要将其添加到查询中。如果您是动态获取它,则可以在运行查询之前对其进行转义或清理。在您的查询中,文件路径是一个标识符。
$filePath = 'bet.csv';
$query="COPY bet_import FROM '$filePath' DELIMITER ',' CSV HEADER";
$result = pg_prepare($dbh, "", $query);
$result = pg_execute($dbh, "",array());
您必须在查询本身中传递文件名。此查询将在 postgresql 上运行,因此您需要指定文件的绝对路径。如果此文件与您的 php 代码放在相同的代码中,那么您还需要指定绝对路径。
- 1 回答
- 0 关注
- 135 浏览
添加回答
举报
0/150
提交
取消