使用PHP/MySQL导入CSV数据-完整示例

使用PHP/MySQL导入CSV数据-完整示例,php,mysql,csv,Php,Mysql,Csv,我遵循这里给出的第一个答案() 但我可能把一些基本的事情搞砸了 下面是我的代码现在的样子: <?php $accounts = mysql_connect('localhost','root','mypass') or die (mysql_error()); mysql_select_db("dbname",$accounts); $fileName='./myfile.csv'; $query = <<<eof LOAD DATA INFILE '$m

我遵循这里给出的第一个答案() 但我可能把一些基本的事情搞砸了

下面是我的代码现在的样子:

<?php

$accounts =  mysql_connect('localhost','root','mypass')
or die (mysql_error());
mysql_select_db("dbname",$accounts);

$fileName='./myfile.csv';

$query = <<<eof
    LOAD DATA INFILE '$myfile.csv'
     INTO TABLE tbname
     FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
     LINES TERMINATED BY '\n'
    (ID,Entity,HOOK,Period,Status,Trade,etc)
eof;

$dbname->query($query);
?>
欢迎光临


tks提前

正如我在之前的评论中提到的,您正在混合过程编程和目标编程。 像
mysql\u connect
mysql\u select\u db
mysql\u query
这样的函数都是过程性的。所以当你用这些函数开始你的项目时,你必须这样做

您的代码应该如下所示:

<?php
$accounts =  mysql_connect('localhost','root','mypass') or die (mysql_error());
mysql_select_db("dbname",$accounts);

$fileName='./myfile.csv';

$query = <<<eof
    LOAD DATA INFILE '$myfile.csv'
     INTO TABLE tbname
     FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
     LINES TERMINATED BY '\n'
    (ID,Entity,HOOK,Period,Status,Trade,etc)
eof;

mysql_query($query); // <= HERE is the change
?>


您不能使用
$dbname
,因为它是一个不存在的变量。

如果您使用
mysql\u connect
mysql\u select\u db
,您还应该使用
mysql\u query
进行查询。@PKeidel。你能给我一点启发吗?我试过:
$dbname->mysql\u查询($query)
$dbname->mysql\u查询($query,$account)并且没有工作!欢迎任何提示!我在下面张贴了正确的代码作为答案;)@Tks,但我有其他问题,因为上面的更改不起作用。我还尝试将整个代码移到mysqli面向对象,但仍然卡住了:-/()。不适用于此代码。它运行良好,只是它没有上载我的表中的任何内容。请尝试
echo$query
,并通过phpmyadmin或控制台运行显示的SQL语句以检查其功能。在文件开头添加一个
错误报告(E\u ALL)
<?php
$accounts =  mysql_connect('localhost','root','mypass') or die (mysql_error());
mysql_select_db("dbname",$accounts);

$fileName='./myfile.csv';

$query = <<<eof
    LOAD DATA INFILE '$myfile.csv'
     INTO TABLE tbname
     FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
     LINES TERMINATED BY '\n'
    (ID,Entity,HOOK,Period,Status,Trade,etc)
eof;

mysql_query($query); // <= HERE is the change
?>