我插入一個csv到MySQL數據庫。這個問題經常出現在我的csv文件中,有一列名爲Alternates
,由於某種原因,如果數據長到一定數量,它會滾動到下一行,使其中一行專用於該列的多餘數據。MySQL插入帳戶隨機CSV行PHP上滾動
因此,如果列被命名爲候補並且數據DFE121-343431 38747
然後 38747
將推廣到下一行。
我需要找到一種方法來解決這個問題,並確保正在滾動的數據也將被輸入到與其相關數據的其餘部分相同的行中。
我會提供的
一些圖像Excel文件
CSV數據
MySQL數據庫
請看看我的代碼創建表 打開CSV文件 轉換數據,並將其添加到表
$sql = "CREATE TABLE IF NOT EXISTS " . $table_name . " (
id int(8) NOT NULL AUTO_INCREMENT,
wuno_product varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
wuno_description varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
wuno_alternates varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
wuno_onhand varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
wuno_condition varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;";
$dbh->query($sql);
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];
}
$col1 = $col[0];
$col2 = $col[1];
$col3 = $col[2];
$col4 = $col[3];
$col5 = $col[4];
// SQL Query to insert data into DataBase
$sql = "INSERT INTO " . $table_name . "(wuno_product, wuno_description, wuno_alternates, wuno_onhand, wuno_condition)
VALUES('".$col1."','".$col2."','".$col3."','".$col4."','".$col5."')";
$dbh->query($sql);
}
fclose($handle);
這是一個什麼樣的實際CSV時像一個額外行的一個例子出現
8869K6X,2POLE TOGGLE SWITCH,MS90311-781,58,58
,,5930-01-109-7580,,
在那種情況下
,,5930-01-109-7580,,
在它所在的行後面顯示一行。
可以清理Excel文件? – Strawberry
問題是我正在使用的是5k行。當它投入生產時,它將長達88k。所以我們無法花時間清理它。 – wuno
如果上面的示例excel表格格式良好,它看起來如何? – Strawberry