2017-06-15 70 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