gpt4 book ai didi

php - 如何使用数据库表头更新 csv 列名

转载 作者:可可西里 更新时间:2023-11-01 08:51:12 25 4
gpt4 key购买 nike

过去几天我遇到了这个问题,现在很沮丧,因为我必须这样做。

我需要用数据库表头更新我的 CSV 文件列名。我的数据库表字段与 CSV 文件不同。现在的问题是,首先我想用数据库表头更新 CSV 文件的列名,然后将其数据和字段映射导入数据库。

请帮帮我,我不知道该如何解决。

这是我的 php 代码:

$file      = $_POST['fileName'];
$filename = "../files/" . $file;
$list = $_POST['str'];
$array_imp = implode(',', $list);
$array_exp = explode(',', $array_imp);
$fp = fopen("../files/" . $file, "w");
$num = count($fp);

for ($c = 0; $c < $num; $c++) {
if ($fp[c] !== '') {
fputcsv($fp, $array_exp);
}
}

fclose($fp);


require_once("../csv/DataSource.php");
$path = "../files/test_mysql.csv";
$dbtable = $ext[0];

$csv = new File_CSV_DataSource;
$csv->load($path);
$csvData = $csv->connect();
$res='';
foreach($csvData as $key)
{ print_r($key[1]);
$myKey ='';
$myVal='';
foreach($key as $k=>$v)
{
$myKey .=$k.',';
$myVal .="'".$v."',";

}
$myKey = substr($myKey, 0, -1);
$myVal = substr($myVal, 0, -1);
$query="insert into tablename($myKey)values($myVal)";
$res= mysql_query($query);

最佳答案

您有一个现有文件,需要替换其第一行。

这已在此处概述:

一些小的解释(以及其他问题中未涵盖的一些技巧)。大多数情况下,在这里使用两个文件更容易操作:

  1. 现有文件(从中复制)
  2. 临时用于写入的新文件。

完成后,旧文件将被删除,新文件将重命名为旧文件的名称。

您的代码不起作用,因为您已经将新的第一行写入 文件。这将在您关闭文件时切断文件的其余部分。

此外,您看起来对一些基本的 PHP 功能有误导,例如使用 count在文件句柄上并不能帮助您获得行数。它只会返回 1。

这里是你需要做的一步一步:

  1. 打开现有文件进行读取。只需阅读它的第一行即可推进文件指针 ( fgets )
  2. 打开一个新文件写入。将新 header 写入其中(正如您已经成功完成的那样)。
  3. 将第一个文件中的所有剩余数据复制到新的第二个文件中。 PHP 有一个函数,叫做 stream_copy_to_stream .
  4. 关闭两个文件。

    Now check if the new file is what you're looking for. When this all works, you need to add some more steps:

  5. 将原始文件重命名为新名称。这可以通过 rename 来完成.

  6. 将您写入的文件重命名为原始文件名。

如果需要,您可以删除在 5 中重命名的文件。- 但前提是您不再需要它。

就是这样。我希望这是有帮助的。 PHP 手册包含所有提及和链接的函数的示例代码。祝你好运。如果您不了解自己的代码,请先使用手册阅读。这减少了可能引入错误的地方。

关于php - 如何使用数据库表头更新 csv 列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13874441/

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