如何使用php导入具有复制功能的csv

我需要将一个 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


繁花不似锦
浏览 136回答 1
1回答

炎炎设计

您不能在准备语句中绑定标识符(表名、字段名)。您需要将其添加到查询中。如果您是动态获取它,则可以在运行查询之前对其进行转义或清理。在您的查询中,文件路径是一个标识符。$filePath = 'bet.csv';$query="COPY bet_import FROM '$filePath' DELIMITER ',' CSV HEADER";$result = pg_prepare($dbh, "", $query);$result = pg_execute($dbh, "",array());您必须在查询本身中传递文件名。此查询将在 postgresql 上运行,因此您需要指定文件的绝对路径。如果此文件与您的 php 代码放在相同的代码中,那么您还需要指定绝对路径。
打开App,查看更多内容
随时随地看视频慕课网APP