繁体   English   中英

使用CSV文件导入文本MYSQL

[英]Text MYSQL Import Using CSV file

嗨,我需要一只手在处理我正在执行的代码,我想将字段编号放入代码中,但未能将其删除:

我当前的代码:

ini_set('memory_limit',  -1);
error_reporting(0);
$lines = array();
if (($handle = fopen("test.csv", "r")) !== false)
{

    while (($data = fgetcsv($handle, 0, ',')) !== false)
    {
        if (isset($fields))
        {
            $lines[] = $data;
        }
        else
        {
            $fields = $data;
        }
    }

    fclose($handle);
}

$i="0";
$line[$k] = '".addslashes($data['.$i.'])."';
$i++;

$sql .= '$update = "UPDATE `Test` SET <br />`' . implode($fields, '` = \'' . implode($line, '\', \'') . '\',<br />`') . '` = \'".addslashes($data[0])."\'' . "\n";

echo $sql;

我的csv:

test1,test2,test3,test4,test5,test6

我需要输出:

$update = "UPDATE `Test` SET 
`test1` = '".addslashes($data[0])."',
`test2` = '".addslashes($data[1])."',
`test3` = '".addslashes($data[2])."',
`test4` = '".addslashes($data[3])."',
`test5` = '".addslashes($data[4])."',
`test6` = '".addslashes($data[5])."'

我的代码只输出:

$update = "UPDATE `Test` SET 
`test1` = '".addslashes($data[0])."',
`test2` = '".addslashes($data[0])."',
`test3` = '".addslashes($data[0])."',
`test4` = '".addslashes($data[0])."',
`test5` = '".addslashes($data[0])."',
`test6` = '".addslashes($data[0])."'

任何想法??

为什么不将其放入循环中并直接构造它,请考虑以下示例:

$data = array();
if (($handle = fopen("test.csv", "r")) !== false) {
    while(!feof($handle)) {
        $fields = fgetcsv($handle, 1024);
    }

    foreach($fields as $key => &$value) {
        $value = $value = '`' . $value . '`' . ' = ' . '".addslashes($data['.$key.'])."';
    }

    fclose($handle);
}

$sql .= '$update = "UPDATE `Test` SET <br />`' . implode("<br/>\n", $fields);
echo $sql;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM