|
|
|
import ข้อมูลจาก .CSV เข้า MySql แล้วเกิดช่องว่างเฉพาะข้อมูลแรก ? |
|
|
|
|
|
|
|
Import ผ่าน Script หรือ phpMyAdmin
|
|
|
|
|
Date :
2016-06-09 13:34:29 |
By :
fossil31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้ code ชุดด้านล่างนี้ครับ
พอนำข้อมูลใส่ลงไป สังเกตุว่า record ข้อมูล แรกช่องแรกมันเติมช่องว่างเพิ่มไปให้กับข้อมูลนะครับ record ข้อมูลถัดไป ไม่เป็น
Code (PHP)
$import_csv = $_FILES["import_csv"]["tmp_name"];
$objCSV = fopen($import_csv, "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$insertSQL = sprintf("INSERT INTO st_sign_customer (test1, test2, test3, test4, date1, date2) VALUES (%s, %s, %s, %s, %s, %s)",
GetSQLValueString(trim($objArr[0]), "text"), // ใส่ function ตัดช่องว่างแล้วครับ
GetSQLValueString($objArr[1], "text"),
GetSQLValueString($objArr[2], "text"),
GetSQLValueString($objArr[3], "text"),
GetSQLValueString(date("Y-m-d H:i:s"), "date"),
GetSQLValueString(date("Y-m-d H:i:s"), "date"));
mysql_select_db($database_connection, $connection);
$Result1 = mysql_query($insertSQL, $connection) or die(mysql_error());
}
fclose($objCSV);
ส่วนข้อมูล CSV ผม copy เหมือนกันทุก record ครับ
รบกวนทีครับ อยากรู้ว่า มันเอาช่องว่างมาเติมได้ไง หรือแก้ไขอย่างไรได้ครับ
|
|
|
|
|
Date :
2016-06-10 09:21:07 |
By :
baicrew |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผม upload ข้อมูลจาก txt ในโปรแกรม Express ผ่าน codeigniter เผื่อเป็นแนวทางครับ
Code (PHP)
$handle = fopen($file_name, "r");
fgetcsv($handle);
while (($data = fgetcsv($handle, 50000, ',')) !== FALSE)
{
if ($data[0] !== '')
{
$date = explode('/', $data[1]);
$data = array(
'docno' => trim(tis_utf8($data[0])) ,
'docdate' => ($date[2] + 1957) . '-' . $date[1] . '-' . $date[0] ,
'doctype' => $doctype,
'prefix' => $file,
'owner' => tis_utf8($data[3]),
'component' => tis_utf8($data[2]),
'groups' => substr($data[4], 2, 10),
'itemcode' => tis_utf8($data[4]),
'desc' => tis_utf8($data[5]),
'kg' => $data[6],
'unit' => tis_utf8($data[7]),
'operation' => '-1',
'category' => substr(trim(tis_utf8($data[2])), 0, 3)
);
$this->db->insert('table', $data);
}
}
|
|
|
|
|
Date :
2016-06-10 11:42:49 |
By :
fossil31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากครับ
ปัจจุบัน ผมก็ยังหาไม่ได้ว่ามันเกิดจากอะไรเลยครับ แต่ผมลอง test โดยการ
ที่ File .CSV
Record1 --> ปล่อยช่องว่างใว้ ถัดไปมีข้อมูล พอใช้ code ที่มีปัญหา import ลงไป Record1 จะเป็นค่าว่างทุก field และ record ถัดไปก็จะมีข้อมูล
ผมลองมาสังเกตุที่ record1 ที่ field แรกข้อมูลจะเป็นค่าว่าง ส่วน field ถัดไปเป็นค่า NULL จึงสรุปได้ว่ามันเติมค่าว่างใส่ field แรกจริงๆครับ งง ดีว่ามันมาอย่างไงได้
วิธีแก้ไข ผมเพิ่ม Field แรกใหม่ ให้เป็น auto_increment ในข้อมูล CSV ผมก็เพิ่มช่องแรก เพื่อให้ import แล้วมีข้อมูล เพิ่มที่ field ใหม่ แต่ข้อมูลนี้ไม่ได้ใช้ เวลา import ข้อมูลอะไร ที่เพิ่มลง field auto_increment มันก็จะไม่ถูกเพิ่มลงไป แก้แบบ อ้อมๆ .....
|
|
|
|
|
Date :
2016-06-10 13:44:21 |
By :
baicrew |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2016-06-10 14:14:34 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function นี้ ป่าว GetSQLValueString
|
|
|
|
|
Date :
2016-06-10 16:15:32 |
By :
fossil31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|