2014-01-28 43 views
0

所以,我想獲取文件路徑,然後將其插入到MySQL。php加載數據本地infile路徑錯誤

這是代碼:

<?php 

$file = $_FILES['file']['tmp_name']; 

include "config.php"; 

$result = mysql_query("LOAD DATA LOCAL INFILE '$file'" . 
         " INTO TABLE ponuda FIELDS TERMINATED BY ' '"); 
if (!$result) { 
    die("Could not load. " . mysql_error()); 
} 

?> 

這是我收到的路徑:

string 'C:\Users\xxx\AppData\Local\Temp\php11EF.tmp' 

但是,我得到的MySQL錯誤說這:

Could not load. Can't find file 'C:UsersxxxAppDataLocalTempphp1FA6.tmp'. 

爲什麼斜槓去掉?我做錯了什麼。試圖尋找一個問題,但沒有找到任何結果。

p.s.我想從本地PC上傳該文件。

編輯:如果我在路徑中將「\」更改爲「/」,它可以正常工作,但是如何才能使用原始文件路徑,而不是臨時文件,因爲該文件不存在於臨時文件中?

+1

更改\'s到/的似乎(不使用Windows自己,[但我在這裏看到的評論](HTTP://dev.mysql。 com/doc/refman/5.0/en/loading-tables.html) – Wrikken

+0

這似乎工作,但問題是路徑。我怎樣才能使用原始路徑,而不是溫度? – user3233536

+0

原始路徑?用戶電腦...所以不,沒有骰子?還是我誤解了你?你可以將文件移動到任何你喜歡的地方。 – Wrikken

回答

1

好的,設法發現錯誤。

現在它的工作:

<?php 

$file = str_replace("\\", "/", $_FILES['file']['tmp_name']); 

include "config.php"; 

$result = mysql_query("LOAD DATA LOCAL INFILE '$file'" . 
         " INTO TABLE ponuda FIELDS TERMINATED BY ' '"); 
if (!$result) { 
    die("Could not load. " . mysql_error()); 
} 

?>