将csv文件导入MySQL-PHP时,更改创建表中的数据类型
在上一篇文章中,我询问了如何使用反勾号为字段创建表。现在,我们的团队决定在将一些.csv文件导入mysql时对其进行计算。但是,我们的默认数据类型是VARCHAR(500)。我们的表有一个Amount列,我们希望该数据类型为INT。您能给我们一些提示吗?多谢各位 这是我的密码:将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
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'它起作用了:)谢谢它在我们的计算中也起作用了:)