gpt4 book ai didi

php - 遍历文件夹中的 CSV 文件并使用 PHP 将数据加载到 MySQL

转载 作者:行者123 更新时间:2023-11-29 00:32:20 27 4
gpt4 key购买 nike

我使用以下代码遍历文件夹中的文件并将数据加载到 MYSQL 表中。我不能完全让这个工作。有没有更好的解决方案?

if ($handle = opendir('C:\Documents and Settings\Desktop\CSV Files')) {
while(false !== ($entry = readdir($handle)))
{
mysql_query("LOAD DATA LOCAL INFILE %handle
INTO TABLE main_table
FIELDS
TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES")
}
}

最佳答案

您的代码有太多错误,很难选择从哪里开始...

  • 您的目录路径未转义。
  • 您没有任何信息告诉您该目录无法打开。
  • %handle 不是 PHP 变量,而且是错误的变量。
  • $entry 只是文件名,不是完整路径。
  • mysql_query() 调用末尾没有分号。
  • 你的 'enclose' 和 'escape' 字符都是 ",它们都没有被转义。
  • 回显 查询而不是运行它,以确保它在无法正常工作时格式正确。
  • 您永远不会真正检查查询是否成功。
  • 打开错误报告,因为您有一些明显的解析错误,这些错误应该会导致此脚本甚至在运行之前就失败。
  • 和广受欢迎的:mysql_* 函数已弃用,您应该使用 PDO 或 MySQLi。

所以这应该可以工作:

<?php
error_reporting(E_ALL);
define('DEBUG', true);

$basedir = 'C:\\Documents and Settings\\Desktop\\CSV Files\\';
if ($handle = opendir($basedir)) {
while(false !== ($entry = readdir($handle))) {
$query = "LOAD DATA LOCAL INFILE $basedir$entry
INTO TABLE main_table
FIELDS
TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
ESCAPED BY '\\'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES");
if(DEBUG) { echo $query . "\n"; }
if(!mysql_query($query)) {
die('Query failed: ' . mysql_error());
}
}
} else {
echo "Could not open $basedir";
}

关于php - 遍历文件夹中的 CSV 文件并使用 PHP 将数据加载到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15956688/

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