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