gpt4 book ai didi

php - 如何使用 php 将 csv 文件导入 MySQL?

转载 作者:行者123 更新时间:2023-11-29 02:48:03 26 4
gpt4 key购买 nike

有没有办法使用 php 将 csv 导入 MySQL?

我有一个 ImportData.php 文件,其中包含以下不会产生错误消息的代码。 ImportData.phpabc.csv 位于 Web 服务器上的同一文件夹中,而 MySQL 位于另一台服务器上。

如果 LOAD DATA LOCAL INFILE 不起作用,还有什么其他方法可以用 php 导入?我想为该任务设置一个 cronjob。

$sql = "LOAD DATA LOCAL INFILE 'abc.csv' INTO TABLE tbl_test
FIELDS TERMINATED BY ',' ENCLOSED BY '\"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES";

最佳答案

关于您的问题,我们很高兴有几条途径可以解决它:

<强>1。加载数据入文件

一个很棒的 MySQL 功能,允许您在单个查询中直接导入 CSV 文件。

您要查找的 SQL 命令是 LOAD DATA INFILE

手册页在这里:http://dev.mysql.com/doc/refman/5.1/en/load-data.html

简单示例:

    LOAD DATA INFILE 'fileName'
INTO TABLE tableName
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(
field1,
field2,
field3,
@variable1,
@variable2,
etc
)
set
(
field4 = concat(@variable1,@variable2)
);

这是一个相当基本的示例,但它涵盖了您想要的大部分内容。手册页提供了有关如何使用它执行一些非常复杂的操作的完整详细信息。

**2。解析您的 CSV 并以编程方式插入它 **

    set_time_limit(10000);


$con = new mysqli("example.com", "user", "password", "database");
if (mysqli_connect_errno()) {
trigger_error('Database connection failed: ' . mysqli_connect_error(), E_USER_ERROR);}


$fp = fopen("file.csv", "r");

while( !feof($fp) ) {
if( !$line = fgetcsv($fp, 1000, ';', '"')) {
continue;
}

$importSQL = "INSERT INTO table_name VALUES('".$line[0]."','".$line[1]."','".$line[2]."')";

$qry = $con->query(($importSQL) ;

if($qry === false) {
trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $con->error, E_USER_ ERROR);
}

}

fclose($fp);

希望对您有所帮助。

关于php - 如何使用 php 将 csv 文件导入 MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39440701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com