-1
A
回答
1
如果你有一个脚本语言,就可以通过CSV线环,并有它生成的SQL代码:
PHP例子:
<?php
$lines = file('file.csv');
foreach($lines as $line){
//sepatates each cell by the delimiter "," (watch for delimiters in the cell, escaped or not)
$cell = explode(",",$line);
$sql = "INSERT INTO table (col1,col2,col3) VALUES (";
$sql.= "'".$cell[0]."','".$cell[1]."','".$cell[2]."');";
echo $sql;
}
?>
+0
更好地使用准备好的查询。如果任何列包含双引号(或其他字符),则在发送到数据库服务器之前应该将其转义,否则这将失败。 –
1
遍历文件并用准备好的查询插入。准备好的查询也应该更快,因为数据库不必重新编译发送它的每个SQL字符串。当你有成千上万条线路时,这将更加明显。
<?php
// assume $db is a PDO connection
$stmt = $db->prepare('INSERT INTO table (col1, col2, col3) VALUES(?, ?, ?)');
// read file contents to an array
$lines = file('file.csv');
// insert each line
foreach ($lines as $line) {
// see manual to specify $delimter, $enclousure, or $more
$cols = str_getcsv($lines);
$stmt->execute($cols);
}
这将工作。由于我们使用file()
,如果您的CSV文件很大,该脚本可能会消耗大量内存。为了更好地利用资源,请执行以下操作,一次只在内存中保留一行:
<?php
// assume $db is a PDO connection
$stmt = $db->prepare('INSERT INTO table (col1, col2, col3) VALUES(?, ?, ?)');
$handle = fopen('test.csv', 'r');
while ($cols = fgetcsv($handle)) {
$stmt->execute($cols);
}
相关问题
- 1. 将CSV文件导入到MySQL而不使用加载数据infile
- 2. 在mysql加载数据infile导入时删除CSV公式值
- 3. Mysql CSV加载infile
- 4. 导入CSV到MySQL与LOAD DATA INFILE
- 5. 检索导入的CSV(加载数据INFILE)的ID
- 6. MySQL加载数据Infile
- 7. 加载数据INFILE不会导入CSV数据源中的所有行
- 8. 加载本地infile csv到MySQL数据库失败
- 9. 导入CSV数据到MySQL
- 10. 将csv数据导入到mysql表中
- 11. 将数据导入csv文件到mysql
- 12. 加载CSV文件导入到MYSQL数据库不能导入行
- 13. CSV加载数据不导入文件
- 14. php LOAD数据本地INFILE csv到mysql
- 15. 问题与CSV的简单导入到MySQL数据库(LOAD DATA INFILE不工作)
- 16. 错误加载CSV与MySQL LOAD DATA INFILE
- 17. LOAD DATA LOCAL INFILE,导入CSV到MySQL表不能正常工作
- 18. “加载数据infile”插入数据库
- 19. 我想从.csv加载mysql中的数据infile
- 20. 将数据加载到mysql LOAD DATA INFILE难度
- 21. 将数据Infile @variable加载到infile错误
- 22. LOAD DATA INFILE不会导入到mysql数据库
- 23. mysql加载数据infile vs使用表
- 24. 与MySQL加载数据infile的难度
- 25. Infobright/MySQL加载数据infile死锁
- 26. mysql加载数据infile where子句
- 27. PHP/Mysql加载数据本地infile
- 28. mysql加载数据本地infile
- 29. 将CSV导入到MySQL
- 30. 将CSV数据导入CSV
当然,打开文件,读取内容并插入每行。 –
有几种方法:通过服务器端代码,自己手动执行,雇佣一大堆奴隶手动执行,...您想要什么样的解决方案? –