2016-07-28 62 views
-1

我知道有很多与此相关的问题,但我似乎无法找到解决我的错误的解决方案。使用PHP将CSV插入MYSQL

我的CSV:

My CSV

我的SQL表:

enter image description here

我想插入CSV MYSQL中。

据我所知,我不需要为此编码,但我希望数据在MYSQL中,因为python代码检索代码每隔1小时刷新一次。

这里是我的代码:

一次尝试

<?php 

//database connection details 
$connect = mysql_connect('127.0.0.1','admin','password'); 

if (!$connect) { 
die('Could not connect to MySQL: ' . mysql_error()); 
} 

//your database name 
$cid =mysql_select_db('weather',$connect); 

// path where your CSV file is located 
define('CSV_PATH','C:/scripts/'); 

// Name of your CSV file 
$csv_file = CSV_PATH . "nea.csv"; 


if (($handle = fopen($csv_file, "r")) !== FALSE) { 
    fgetcsv($handle); 
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    $num = count($data); 
    for ($c=0; $c < $num; $c++) { 
     $col[$c] = $data[$c]; 
    } 

// column name in mysql = column in csv? 
$validTime = $col[0]; 
$Date = $col[1]; 
$Time = $col[2]; 
$Lat = $col[3]; 
$Lon = $col[4]; 
$AreaName = $col[5]; 

// SQL Query to insert data into DataBase 
$query = "INSERT INTO neaweather(validTime, Date, Time, Lat, Lon, AreaName) 
VALUES('".$col[0]."','".$col[1]."','".$col[2]."','".$col[3]."','".$col[4]."','".$col[5]."')"; 
$s = mysql_query($query, $connect); 
} 
    fclose($handle); 
} 

echo "File data successfully imported to database!!"; 
mysql_close($connect); 
?> 

第二次尝试:

<?php 
//set the connection variables 
$hostname = "127.0.0.1"; 
$username = "admin"; 
$password = "password"; 
$database = "weather"; 
$filename = "C:/scripts/nea.csv"; 

//connect to mysql database 
$connection = mysqli_connect($hostname, $username, $password, $database) or  
    die("Error " . mysqli_error($myConnection)); 

// open the csv file 
$fp = fopen($filename,"r"); 

//parse the csv file row by row 
while(($row = fgetcsv($fp,"500",",")) != FALSE) 
{ 
$sql = "INSERT INTO neaweather (ValidTime, Date, Time, Lat, Lon, AreaName) VALUES ('".mysqli_escape_string($data[0])."','".mysqli_escape_string($data[1])."','".mysqli_escape_string($data[2])."','".mysqli_escape_string($data[3])."','".mysqli_escape_string($data[4])."','".mysqli_escape_string($data[5])."')"; 
    mysqli_query($myConnection,$sql); 
    if($query){ 
     echo "row inserted\n"; 
    } 
    else{ 
     echo die(mysqli_error()); 
    } 
} 
fclose($fp); 

//close the db connection 
mysqli_close($myConnection); 
?> 

编辑:我跑了两码,有没有错误的所有。然而,数据仍然没有进入MYSQL

+1

'拒绝访问用户 '' @ 'localhost' 的<使用密码:NO>'意味着你不发送任何凭据到mysql因此未建立连接。这是因为你的连接是'$ connection',但是后来在代码中使用'$ myConnection'尝试 –

+0

你是什么意思,我没有发送凭据到MySQL? :x – plzhelpmi

+1

您需要给MySQL – Jocelyn

回答

-2

我想建议如果你使用这个库,它支持csv,xls,xlsx文件的导入和导出。

我已经使用了这几次,它的作品像魅力。

PHPExcel:https://github.com/PHPOffice/PHPExcel

+0

嗨,谢谢你的建议。但是,我的代码现在没有错误,但它不工作,我不知道为什么。你能帮忙吗? – plzhelpmi

+0

嗨,我留给你一条消息在Skype上:) – plzhelpmi

+0

当然,我在Skype上,PLZ回到Skype上的消息,我会调试和纠正代码,并在此后重新发布, –