내 TEX/csv 파일은 3 열 first_name
, last_name
및 address
을 가지고 있지만 내 데이터베이스 테이블은 두 개의 열 first_name
및 last_name
있습니다. 나는 심지어 테이블에 존재하지 않는 많은 열이 csv
에 있다는 함수를 갖고 싶습니다. 테이블에 여전히 올바른 열을 선택하고 테이블에 삽입 할 수 있습니다. 어떤 사람은 PHP mysql_fetch_field
을 사용하여 조언합니다. mysql_fetch_field
을 시도하고 데이터베이스 테이블 열 이름을 수집 할 수 있지만 테이블 헤더에 따라 데이터를 삽입 할 수 없습니다.수입 TXT/CSV 데이터
set_time_limit(0);
include "connection.php"; //Connect to Database
if (isset($_POST['submit'])) {
// Gel table current column name
$query = "select * from month";
$result=mysql_query($query) or die (mysql_error());
$i = 0;
while ($i < mysql_num_fields($result)) {
$meta = mysql_fetch_field($result, $i);
$a=$meta->name;
$i++;
}
//Upload File
if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "</h1>";
echo "<h2>Displaying contents:</h2>";
readfile($_FILES['filename']['tmp_name']);
}
//Import uploaded file to Database
$handle = fopen($_FILES['filename']['tmp_name'], "r");
$header = fgetcsv($handle);
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$import="INSERT into month($header[0],$header[1]) values('$data[0]','$data[1]')";
mysql_query($import) or die(mysql_error());
}
fclose($handle);
echo "Import done";
}
'mysql_ *'은 더 이상 사용되지 않으므로'PDO' 나'mysqli_ * '로 바꾸지 마십시오. 또한 [here 's] (http://stackoverflow.com/questions/10478861/importing-multiple-csv-files-to-mysql-tables) 유용 할 수도있는 PDO를 사용하는'LOAD LOCAL INFILE'의 예제 –