我需要將一個 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 關注
- 156 瀏覽
添加回答
舉報
0/150
提交
取消