Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP MySQL导入上载的csv错误_Php_Mysql_File Upload_Pdo - Fatal编程技术网

PHP MySQL导入上载的csv错误

PHP MySQL导入上载的csv错误,php,mysql,file-upload,pdo,Php,Mysql,File Upload,Pdo,我对php/mysql非常陌生,但在创建允许我的用户上传csv文件并替换更改的数据/插入新数据的页面时遇到了困难。我知道我的数据库连接工作正常,因为我有另一个页面以可排序/可搜索的方式显示数据库内容。下面是我得到的代码和错误 dataimport.html <html> <body> <form action="dataimport.php" method="post" enctype="multipart/form-data"> <label for

我对php/mysql非常陌生,但在创建允许我的用户上传csv文件并替换更改的数据/插入新数据的页面时遇到了困难。我知道我的数据库连接工作正常,因为我有另一个页面以可排序/可搜索的方式显示数据库内容。下面是我得到的代码和错误

dataimport.html

<html>
<body>

<form action="dataimport.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html>
我知道我可能在$sql行中包含了错误的文件,但就我的一生而言,我在这里碰壁,找不到有帮助的示例

添加数据库include

<?php
try
{
  $pdo = new PDO('mysql:host=localhost;dbname=db', 'user', 'pass');
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $pdo->exec('SET NAMES "utf8"');
}
catch (PDOException $e)
{
  $error = 'Unable to connect to the database server.';
  include $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
  exit();
}
?>

您有错误的数据库连接配置。用户名或密码不匹配

编辑

在添加更多源代码后做了一些研究

  • 检查您是否拥有为用户
    'nocreport'@'localhost'
    授予的
    文件
    权限
  • 您还可以尝试添加
    LOCAL
    关键字,如下所示:

    加载数据本地填充'.$datafile.''替换为以''.'结尾的表字段','以'\n'结尾的行忽略1行(@col1,@col2,@col3…)


  • 这意味着
    无法连接到数据库服务器。
    因此,这意味着您的登录凭据不正确。你应该有一个配置文件,在其中你应该放置
    主机
    用户
    密码
    数据库
    ,正如在最初的帖子中所述,db包含的文件是有效的,可以工作的,我在另一页上使用了完全相同的包含,因此我知道user/pass/etc是正确的。代码特别说明了无法连接错误,这不是系统生成的错误。您在哪里初始化试图通过其查询数据库的$pdo对象?添加了db include文件。如前所述,用户/pass/etc都通过另一个页面进行了验证。作为澄清,我已经验证了错误是由dataimport.php引发的,而不是最初帖子中所述的db includeAs,db includea文件是有效的,并且正在工作,我在另一个页面上使用了完全相同的include,因此我知道用户/pass/etc是正确的。代码特别说明了无法连接错误,这不是系统生成的错误。PDO在此返回RDBMS系统给出的错误。您是否可能使用多个db连接?实际上,我们看不到您初始化PDO对象的方式,因此我们无法告诉您更多信息。我只能猜测,但可能您没有此用户执行“加载数据”操作的凭据。编辑的答案为您添加了一些建议,可能会有所帮助。
    Upload: Report.csv
    Type: application/vnd.ms-excel
    Size: 1010.1943359375 kB
    Stored in: E:\XAMPP\tmp\phpBD04.tmp
    Notice: Array to string conversion in \dataimport.php on line 21
    
    Unable to connect to the database server.
    exception 'PDOException' with message       'SQLSTATE[28000]: Invalid authorization specification: 1045 Access denied for user 'user'@'localhost' (using password: YES)' in \dataimport.php:24 Stack trace: #0 \dataimport.php(24): PDOStatement->execute() #1 {main} 
    
    <?php
    try
    {
      $pdo = new PDO('mysql:host=localhost;dbname=db', 'user', 'pass');
      $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $pdo->exec('SET NAMES "utf8"');
    }
    catch (PDOException $e)
    {
      $error = 'Unable to connect to the database server.';
      include $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
      exit();
    }
    ?>
    
    'Access denied for user 'nocreport'@'localhost' (using password: YES)'