2014-01-28 45 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()); 
} 

?>