2016-09-14 173 views
2

我试图使用LOAD DATA LOCAL INFILE从另一个服务器导入csv文件,但它给了我一个错误The user update failed: Can't find file,即使文件存在于给定的路径中。我也试过LOAD DATA INFILE在PHP中将CSV文件导入到Mysql数据库中

是否有任何其他方法直接导入CSV文件的文件路径(不使用任何提交按钮),dBASE表在MySQL数据库中,并删除当前数据,如果有一个新的csv文件上传?

编辑:我也试过这个PHP脚本,导入CSV文件无任何按键,但是csv文件数据无法导入

PHP(第2码):

$mysqli = new mysqli("localhost", "user", "password", "dbasename"); 
$file = "/var/www/html/files/filename.csv"; 
$handle = fopen($file,'r'); 
while (($data = fgetcsv($handle, 10000, ",")) !== FALSE){ 
    $num = count($data); 
    for ($c=0; $c < $num; $c++){ 
     $col[$c] = $data[$c]; 
    } 

    $col1 = $data[0]; 
    $col2 = $data[1]; 
    $col3 = $data[2]; 
    $col4 = $data[3]; 
    $col5 = $data[4]; 

    // SQL Query to insert data into DataBase 
    $query = "INSERT INTO dbname.tablename(col1,col2,col3,col4,col5) VALUES('".$col1."','".$col2."','".$col3."','".$col4."','".$col5."')"; 
    $mysqli->query($query); 
} 
fclose($handle); 

这里的的PHP:

$sql = "LOAD DATA LOCAL INFILE 'filename.csv' 
     INTO TABLE dbname.tablename 
     FIELDS TERMINATED BY ',' 
     OPTIONALLY ENCLOSED BY '\"' 
     LINES TERMINATED BY '\n' 
     IGNORE 1 LINES;"; 

$con=mysqli_connect("localhost","user","password","db"); 
// Check connection 
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; 
+0

@ e4c5,我并不想导出数据,但将其导入到MySQL数据库。我不这是重复的 – User014019

回答

0

这已被问及之前回答。使用google更好: Mysql permission errors with 'load data'

您需要授予文件权限给mysql用户。

+0

我已经在mysql中授予权限,但是同样的错误 – User014019

+0

它是否必须是文件的完整路径? – systematical

+0

是的,我把文件的完整路径。无论如何,文件所在的远程服务器/ ftp没有mysql/phpmyadmin。还有其他方法可以导入一个csv文件,而无需点击任何按钮? – User014019

0

你也可以尝试使用

$con=mysqli_connect("localhost","user","password","db"); 
$file = fopen("filename.csv","r"); 
while ($data = fgetcsv ($file)){ 
    print_r($data); 
    $sql = 'insert into ...' 
    $result = mysqli_query($con, $sql); 
} 

导入CSV文件

+0

我已经试过,但数据仍然没有导入 – User014019

相关问题