Php 加载数据填充目录结构
我在互联网上搜索了几个小时,试图解决这个问题,最后屈服了,决定直接寻求帮助 我正在运行一个linux专用服务器,需要通过在主机上运行从php页面执行的mysql查询将数据加载到我的mysql数据库中 我遇到的问题是,我不知道目录结构需要是什么样子才能真正找到我的文件并将其上载。我将在下面给出一个例子Php 加载数据填充目录结构,php,mysql,Php,Mysql,我在互联网上搜索了几个小时,试图解决这个问题,最后屈服了,决定直接寻求帮助 我正在运行一个linux专用服务器,需要通过在主机上运行从php页面执行的mysql查询将数据加载到我的mysql数据库中 我遇到的问题是,我不知道目录结构需要是什么样子才能真正找到我的文件并将其上载。我将在下面给出一个例子 LOAD DATA INFILE 'WHAT IN THE WORLD GOES HERE TO MAKE THIS WORK?' INTO TABLE customers 每次尝试运行此操作时
LOAD DATA INFILE 'WHAT IN THE WORLD GOES HERE TO MAKE THIS WORK?'
INTO TABLE customers
每次尝试运行此操作时返回的错误是
Error Code: 1045. Access denied for user
我已经检查了权限,用户对相应的数据库拥有完全权限。从我自己的研究中,我发现它会抛出这个错误,原因有几个,其中之一是它找不到我试图上传的文件
进入public_html文件夹后,我的文件结构如下:
reports/uploads/fileName.csv
提前谢谢你的帮助!这让我发疯。如果我只是用了一种完全错误的方法,或者有一种更简单的方法来完成我正在做的事情,那么我也愿意接受这方面的建议。如以下所述:
- 如果文件名是绝对路径名,服务器将按给定方式使用它
- 如果文件名是具有一个或多个前导组件的相对路径名,则服务器将相对于服务器的数据目录搜索该文件
- 如果给定的文件名没有前导组件,服务器将在默认数据库的数据库目录中查找该文件
public\u html
文件夹与此无关,因为MySQL服务器正在读取该文件。如果您的Web服务器和数据库服务器是不同的计算机,并且您正试图从客户端而不是服务器加载文件,则需要使用load DATA LOCAL infle
来指定。然后将根据客户端应用程序的工作目录解释文件名。一些想法:要在服务器上的文件上使用加载数据填充,执行加载数据的用户必须具有文件权限。如果文件存在于客户端,请使用“加载数据本地填充”
此链接非常有用:
通常最好使用一个位于易于访问的位置(例如/tmp)的文件测试加载文件,以确认权限正常。然后,您可以开始调试对实际文件所在位置的访问问题
希望这有帮助。您检查过了吗?