2017-06-15 72 views
0

在我以前的question中,我問過如何使用反引號爲我的字段創建表。現在我們的團隊決定在將它導入到mysql時對我們的一些.csv文件進行計算。但是,我們的默認數據類型是VARCHAR(500)。我們的表有一個數量列,我們喜歡那個數據類型是INT。你能給我們提示如何去做嗎?謝謝。在將csv文件導入到MySQL時更改創建表中的數據類型 - PHP

這裏是我的代碼:

for($i=0;$i<count($data); $i++) { 
    $f = strtolower(trim($data[$i])); 
    if ($f) { 
     // normalize the field name, strip to 20 chars if too long 
     $f = substr(preg_replace ('/[^0-9a-z]/', '_', $f), 0, 100); 
     $field_count++; 
     $fields[] = $f.' VARCHAR(500)'; 
    } 
} 

$sqlcreate = "CREATE TABLE $table (" . implode(', ', $fields) . ')'; 
echo $sqlcreate; 

回答

1

如果需要使用基於列的名稱不同的列類型,你可以使用任何一個的if/then或開關/ case語句:

for($i=0;$i<count($data); $i++) { 
    $f = strtolower(trim($data[$i])); 
    if ($f) { 
     // normalize the field name, strip to 20 chars if too long 
     $f = substr(preg_replace ('/[^0-9a-z]/', '_', $f), 0, 100); 
     $field_count++; 
     if($f == 'Amount') { 
      $fields[] = $f.' INT(10)'; 
     } else { 
      $fields[] = $f.' VARCHAR(500)'; 
     } 
    } 
} 

$sqlcreate = "CREATE TABLE $table (" . implode(', ', $fields) . ')'; 


echo $sqlcreate; 
+0

我們會盡力而爲,儘快爲您更新:) – Rukikun

+0

SORRY SCRATCH THAT !!! 我錯過了另一個等號,在我的代碼... $ f =='金額' 它的工作:) – Rukikun

+0

感謝它與我們的計算以及:)工作得很好:) – Rukikun