데이터베이스에 csv를 삽입하는 데 문제가 있습니다. 테이블의 테이블 구조는 여기CSV 콘텐츠를 mysql 데이터베이스에 저장하십시오.
gender,age,name,location
male,21,jayvz,spl
female,21,jacyn,srl
과 : 여기 내 CSV 콘텐츠 샘플의
- 이 contact_id ID (자동 증가)
- 라벨
- 값
내가해야 할 일은 CSV에서 그 데이터에 데이터를 삽입하는 것입니다. 이 같은 BLE :
예상 출력 :
id | contact_id | label | value
1 | 1 | gender | male
2 | 1 | age | 21
3 | 1 | name | jayvz
4 | 1 | location | spl
5 | 2 | gender | female
6 | 2 | age | 21
7 | 2 | name | jacyn
8 | 2 | location | srl
(예상 출력 죄송합니다)
어떤 아이디어? 또는 심지어 이것이 가능한가?
CODE :
$headers = exec("head -n 1 {$paramfile}");
$param_names = array_filter(explode(",", $headers));
$param_count = count($param_names);
$contact_count = count($contacts);
$contactsfile = getcwd()."/uploads/".date('ymdhis').".cntctid";
$row = '';
$str_csv = array();
$tmp_handler = fopen($datafile, 'r');
$param_value = '';
while(($upload_str = fgets($tmp_handler, 4096)) !== FALSE){
$param_value = explode(",", $upload_str);
array_shift($param_value); // msisdn bb
$str_line = implode(",", $param_value);
//$age = array_shift($param_value);
//$row.= implode(",", $param_value);
//for($x = 0; $x < count($param_value); ++$x){
// $row.= $param_value[$x].",";
//}
$str_csv[] = str_getcsv($str_line, ",");
}
for($a = 0; $a < $param_count; ++$a){
for($i = 0; $i < $contact_count; ++$i){
$row = $contacts[$i].",".$param_names[$a].",'<the values should be here>'";
exec("echo '".$row."' >> ".$contactsfile);
}
}
$load_query = "LOAD DATA LOCAL INFILE '{$contactsfile}' INTO TABLE {$this->contact_details} ";
$load_query .= "FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\n' ";
$load_query .= "(contact_id, label_name, label_value)";
$this->db->query($load_query);
return $this->db->affected_rows() > 0;
코드를 표시하십시오. –
가능한 복제본 [어떻게 CSV에서 MySQL로 데이터를 가져올 수 있습니까?] (http://stackoverflow.com/questions/9555370/how-i-can-import-data) -from-csv-to-mysql) – randak
거의 모든 것이 가능합니다. 지금까지 코드를 게시하십시오. –