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

时间:2013-12-06 15:22:56

标签: php mysql csv

我正在按照这里给出的第一个答案(Importing CSV data using PHP/MySQL) 但我可能搞砸了一些基本的东西。

这里我的代码现在看起来如何:

<?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);
?>

我在最后一行中得到并出现错误:

“未定义的变量:第17行的C:\ xampp \ htdocs \ mycode \ loadcsv.php中的dbname”

哪个概率意味着我没有正确加载那个&amp; dbname是一个db?我确实设法使用相同的连接从同一个数据库中检索数据。

行中的任何帮助

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

事先提前!

1 个答案:

答案 0 :(得分:0)

正如我之前在评论中提到的,您正在混合程序和客观编程。 mysql_connectmysql_select_dbmysql_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,因为它是一个不存在的变量。