gpt4 book ai didi

php - 将大型 CSV 文件上传到 Mysql 数据库

转载 作者:行者123 更新时间:2023-11-29 05:40:51 24 4
gpt4 key购买 nike

我想将大型 CSV 文档上传到 mysql 数据库中,谁能帮我解决这个问题,该表由 10 个字段组成,但我只想上传到没有标题的表的 5 个字段中。我想在浏览器中使用 php 完成此操作

$filename = $_FILES['sel_file']['tmp_name'];
<?php
if($_FILES["file"]["type"] != "application/vnd.ms-excel"){
die("This is not a CSV file.");
}
elseif(is_uploaded_file($_FILES['file']['name'])){
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'cbt_software';
$link = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql server');
mysql_select_db('cbt_software') or die(mysql_error());
//Process the CSV file
$handle = fopen($_FILES['file']['name'], "r");
$data = fgetcsv($handle, 1000, ";");
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$att0 = mysql_real_escape_string($data[0]);
$att1 = mysql_real_escape_string($data[1]);
$att2 = mysql_real_escape_string($data[2]);
$att3 = mysql_real_escape_string($data[3]);
$att4 = mysql_real_escape_string($data[4]);

$sql = "INSERT INTO `course_reg` (`coursecode`,`coursename`,`coursedescription`,`coursemaster`,`courselevel`)VALUES ('$att0','$att1','$att2','$att3','$att4')";
mysql_query($sql) or die(mysql_error());
}
mysql_close($link);
echo "CSV file successfully imported.";
}
else{
die("You shouldn't be here");
}
?>

起初,这将 csv 中的所有字段导入到数据库中的一个字段中,在我篡改代码后,它无法将其识别为 CSV 文件。

最佳答案

如果您有适当的权限,您可以直接在 MySQL 中使用 LOAD DATA INFILE 命令执行此操作,请参阅 http://dev.mysql.com/doc/refman/4.1/en/load-data.htmlmysqlimport 工具,参见 http://dev.mysql.com/doc/refman/4.1/en/mysqlimport.html

这两种方法都允许您指定数据应该放在哪些列中,例如:

LOAD DATA INFILE 'myfile.txt' INTO TABLE 'mytable' (col1, col2, col3, ...)

mysqlimport --columns='col1,col2,...' tablename.csv

如果您打算从 PHP 执行此操作,您应该能够读取 CSV 文件的每一行并执行命名适当列的适当 SQL INSERT 查询(尽管这不如直接在 MySQL 中执行效率高) .

编辑:我应该补充一点,您还没有提到您到目前为止尝试过的内容或您发现的困难;如果您在某个特定问题上遇到困难,而不仅仅是寻求有关如何去做的建议,请更新问题以说明这一点。

关于php - 将大型 CSV 文件上传到 Mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6913547/

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