将csv文件导入MySQL-PHP时,更改创建表中的数据类型

将csv文件导入MySQL-PHP时,更改创建表中的数据类型,php,mysql,csv,Php,Mysql,Csv,在上一篇文章中,我询问了如何使用反勾号为字段创建表。现在,我们的团队决定在将一些.csv文件导入mysql时对其进行计算。但是,我们的默认数据类型是VARCHAR(500)。我们的表有一个Amount列,我们希望该数据类型为INT。您能给我们一些提示吗?多谢各位 这是我的密码: for($i=0;$i<count($data); $i++) { $f = strtolower(trim($data[$i])); if ($f) { // normalize

在上一篇文章中,我询问了如何使用反勾号为字段创建表。现在,我们的团队决定在将一些.csv文件导入mysql时对其进行计算。但是,我们的默认数据类型是VARCHAR(500)。我们的表有一个Amount列,我们希望该数据类型为INT。您能给我们一些提示吗?多谢各位

这是我的密码:

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;

for($i=0;$i如果需要根据列的名称使用不同的列类型,可以使用If/then或switch/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;

for($i=0;$iSORRY SCRATCH!!!我的代码中缺少了另一个等号…$f=='Amount'它起作用了:)谢谢它在我们的计算中也起作用了:)