如果我在PHP中使用Load Data Infile MySQL查询,文件位置相对于哪里?它与PHP文件是一个文件夹吗?
答案 0 :(得分:4)
使用LOAD DATA INFILE
,文件名相对于服务器。
使用LOAD DATA LOCAL INFILE
,文件相对于客户端。
如果服务器和客户端都驻留在同一台计算机上,那么请使用LOAD DATA INFILE
,因为它可以更好地处理密钥违规和其他错误。
答案 1 :(得分:1)
来自http://dev.mysql.com/doc/refman/5.1/en/load-data.html 请参阅开始的部分
如果未指定LOCAL,则为该文件 必须位于服务器主机上 由服务器直接读取。该 服务器使用以下规则 找到文件:
大约一页半。
基本上,您应该为文件指定完整路径。相对路径相对于MySQL服务器目录。
如果你想从运行php的web服务器上传文件到运行mysql的数据库服务器(如果这些是不同的机器 - 通常它们是同一台机器),显然Mysql 5.1有一个机制,这就是LOCAL的用途。不过,我从未使用过它。
答案 2 :(得分:0)
不,该路径是服务器端的路径。因此该文件必须与MySQL服务器在同一台机器上。
我不确定工作目录,但它应该是数据库文件所在的目录(/ var / ...)。您可以使用绝对路径来确定。
但正如您所看到的,因为必须涉及服务器机器,这不是一个长期的解决方案。