PHP LOAD DATA INFILE VS Fopen

时间:2015-10-01 00:37:52

标签: php mysql csv

我尝试第二次尝试使用LOAD DATA INFILE将记录从CSV上传到MySQL数据库但我总是遇到所有尝试中的错误,每次都有不同的错误,这就是为什么我宁愿使用原始的循环方式通过记录。

我的上一个剧本:

<?php

//Connect to Database
$maindir = realpath(__DIR__);
include($maindir . '/connectme.php');

$queme = "LOAD DATA INFILE '" . $_FILES['fromfileupload']['tmp_name'] . "'
INTO TABLE thecardb
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"' 
LINES TERMINATED BY ',,,\\r\\n'
IGNORE 1 LINES 
(carid, carname, carbrand, carprice, carcolor)" ; 

if (mysqli_query($concon, $queme))
{
   echo "Success";
}
?>

我最近的错误是

Access denied for user '########_######'@'##.#.#.##' (using password: YES)

出于保密原因,我将部分错误替换为#。

这对我来说一直很烦人,我相信部分问题是由于php.ini中的某些权限设置或其他我无法访问或查找的PHP配置(我正在使用虚拟主机)而不是在我自己的服务器上运行此站点)。我可以使用fopen()从CSV上传记录而不是使用LOAD DATA INFILE吗?我认为这是我现在最简单的解决方案(使用mysqli_multi_query)。我只处理大约5000-10000条记录。

1 个答案:

答案 0 :(得分:0)

嗯...我认为错误信息几乎告诉你问题是什么。

访问被拒绝。

你应该检查一些事情......

  1. 用户帐户和密码。它们是否正确?
  2. 该帐户是否可以访问该数据库?
  3. 该帐户是否可以访问您要将数据加载到的表?
  4. 该帐户是否有权运行load data命令?
  5. 这应该涵盖您现在需要检查的所有内容......