MYSQL LOAD DATA INFOILE正确的文件路径



我正试图使用LOAD DATA INFILE 将CSV的zip文件(从我的DB导出(上传到mysql表中

Mysql似乎走错了路:

例如,以下内容:

C: \examplep\htdocs\site/uploads/temp/162020316052941000/ck_address_change.csv

返回此错误:C: \examplep\mysql\data\examplephtdocssite\uploads\temp\1620203716052941000\ck_address_change.csv未找到(错误代码:2"没有这样的文件或目录"(

//Get file and create directory
$file = $_FILES['import_zip']['tmp_name'];
$rand = preg_replace('/(0).(d+) (d+)/', '$3$1$2', microtime()); //random folder name as will be deleted later
mkdir(dirname(__DIR__).'/uploads/temp/'.$rand, 0777);
$path = dirname(__DIR__).'/uploads/temp/'.$rand;
//Open Zip
$zip = new ZipArchive;
$res = $zip->open($file);
if($res === TRUE) {
$zip->extractTo($path);
$zip->close();  
} 
//Loop files
$files = array_diff(scandir($path), array('.', '..'));  
foreach($files as $file){
$table_name = rtrim($file,'.csv');
$upload = $path.'/'.$file;
$q = "LOAD DATA INFILE '".$upload."' INTO TABLE $table_name";
$results = mysqli_query($db,$q) or die(mysqli_error($db));
if(!$results) {
printf("Error message: %sn", mysqli_error($db));     
}   
}
//Remove Directory
array_map('unlink', glob("$path/*.*"));
rmdir($path);

如何正确设置路径?或者这是我的本地服务器上的问题?

注意,这只是为了在我的本地服务器上测试使用,所以没有安全问题等。

工作代码-将路径中的正斜杠替换为反斜杠。

//Get file and create directory
$file = $_FILES['import_zip']['tmp_name'];
$rand = preg_replace('/(0).(d+) (d+)/', '$3$1$2', microtime()); //random folder name as will be deleted later
mkdir(dirname(__DIR__).'/files/temp/'.$rand, 0777);
$path = dirname(__DIR__).'/files/temp/'.$rand;
//Open Zip
$zip = new ZipArchive;
$res = $zip->open($file);
if($res === TRUE) {
$zip->extractTo($path);
$zip->close();  
} 
//Loop files
$files = array_diff(scandir($path), array('.', '..'));  
foreach($files as $file){
$table_name = rtrim($file,'.csv');
$upload = $path.'\'.$file;
$upload = str_replace('/','\', $upload);
$upload = str_replace('\', '\\', $upload);
$q = "LOAD DATA INFILE '$upload' INTO TABLE $table_name";
$results = mysqli_query($db,$q) or die(mysqli_error($db));
if(!$results) {
printf("Error message: %sn", mysqli_error($db));     
}   
}
//Remove Directory
array_map('unlink', glob("$path/*.*"));
rmdir($path);

最新更新