[英]Importing csv to mysql
我在這個問題上看到了幾個問題,但沒有一個能夠幫助我。
這是我正在使用的腳本。
<?php
//connect to the database
$connect = mysql_connect("localhost","username","password");
mysql_select_db("mydatabase",$connect); //select the table
//
if ($_FILES[csv][size] > 0) {
//get the csv file
$file = $_FILES[csv][tmp_name];
$handle = fopen($file,"r");
//loop through the csv file and insert into database
do {
if ($data[0]) {
mysql_query("INSERT INTO contacts (contact_first, contact_last, contact_email) VALUES
(
'".addslashes($data[0])."',
'".addslashes($data[1])."',
'".addslashes($data[2])."'
)
");
}
} while ($data = fgetcsv($handle,1000,",","'"));
//
//redirect
header('Location: import.php?success=1'); die;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Import a CSV File with PHP & MySQL</title>
</head>
<body>
<?php if (!empty($_GET[success])) { echo "<b>Your file has been imported.</b><br><br>"; } //generic success notice ?>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
Choose your file: <br />
<input name="csv" type="file" id="csv" />
<input type="submit" name="Submit" value="Submit" />
</form>
</body>
</html>
它工作正常,但您無法定義標題行。
我想要做的是,如果可能的話,從第一行獲取每一列並使用它來定義項目將放在數據庫中的列。
所以我想將$data[0]
拆分成csv文件中定義的每一列。 我嘗試過使用LOAD DATA LOCAL INFILE
但由於某些原因它不能用於我。
您可能想先抓住第一行並從中創建列列表字符串:
<?php
if ($_FILES[csv][size] > 0) {
//get the csv file
$file = $_FILES[csv][tmp_name];
$handle = fopen($file,"r");
// get headers
$columns = fgetcsv($handle,1000,",","'");
$column_list = implode(",",$columns);
//loop through the csv file and insert into database
while ($data = fgetcsv($handle,1000,",","'")) {
if ($data[0]) {
for ($i=0;$i<count($columns);$i++){
$data[$i]="'".mysql_real_escape_string($data[$i])."'";
}
$values = implode(",",$data);
$query = "INSERT INTO contacts ($column_list) ($values)";
mysql_query($query);
}
}
//redirect
header('Location: import.php?success=1'); die;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.