Php 如何创建具有安全/唯一字段分隔的CSV文件?

Php 如何创建具有安全/唯一字段分隔的CSV文件?,php,mysql,csv,Php,Mysql,Csv,我创建一个CSV文件: $newFileName = "myfile.csv"; $fileHandle = fopen($newFileName,"w"); foreach ($data as $line){ fputcsv($fileHandle, array($line['id'], $line['name'],$line['path'])); } fclose($fileHandle); if (!empty($fileHandle)) { echo "CSV

我创建一个CSV文件:

$newFileName = "myfile.csv";
$fileHandle = fopen($newFileName,"w"); 

foreach ($data as $line){
   fputcsv($fileHandle, array($line['id'], $line['name'],$line['path']));
}

fclose($fileHandle); 
   if (!empty($fileHandle)) {
   echo "CSV was successfully created";
} else {
echo "Error creating CSV";
}
并将其存储到mySQL数据库中:

$sql = "LOAD DATA LOCAL INFILE 'myfile.csv'
        INTO TABLE test
        FIELDS TERMINATED BY ','
        OPTIONALLY ENCLOSED BY '\"' 
        LINES TERMINATED BY '\n' 
        IGNORE 1 LINES
        (id,name,path)";

 $con=mysqli_connect("localhost","dbuser","dbpassword","dbname");

 if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
 };

 $result = mysqli_query($con, $sql);

 if (mysqli_affected_rows($con) == 1) {
    $message = "The data was successfully added!";
 } else {
    $message = "The user update failed: ";
    $message .= mysqli_error($con); 
 };

 echo $message;
 mysqli_close($con);

对我来说,用逗号分隔似乎不是很安全。我担心,如果在路径中,例如,在某个地方会有一个“逗号”,数据将不正确地存储到数据库中。您能为cvs文件推荐一种独特或更安全的字段分离方法吗

您是否尝试在字段中添加一些逗号?首先要了解CSV文件应该如何处理数据中存在分隔符的数据--CSV有一个文档化的方法来处理此问题,这实际上是一个非问题,因为MySQL的开发人员实际上已经在您之前考虑到了可能的问题did@sec_aw哦,其实我不知道。所以没有问题,我认为会有一个问题:DUpdated comment:这是“安全的”,因为您有一个选项可以选择用set括起来。这意味着字符串数据类型将用引号括起来,这样逗号就不会被解释为字段分隔符;当封闭字符出现在被封闭的数据中时,它将被转义。您是否尝试在字段中添加一些逗号?首先了解CSV文件应该如何处理数据中存在分隔符的位置的数据?CSV有一个文档化的方法来处理此问题,这实际上不是问题,因为MySQL的开发人员实际上已经在您之前考虑到了可能的问题did@sec_aw哦,其实我不知道。所以没有问题,我认为会有一个问题:DUpdated comment:这是“安全的”,因为您有一个选项可以选择用set括起来。这意味着字符串数据类型将用引号括起来,这样逗号就不会被解释为字段分隔符;当封闭字符出现在被封闭的数据中时,将对其进行转义