当我将csv文件导入MySQL(phpmyadmin)时,对于文件中未指定但默认值为null的所有整数值,都会显示错误消息:#1366 - Incorrect integer value: '' for column 'id' at row 1.
。我有这些问题:
一个。如果DB表将该id定义为自动增量,如何导入没有指定row-id的csv文件?
湾在csv文件或phpmyadmin中的表列规范中,对于默认值为null的整数列,我需要什么?
以下是csv文件中的示例行。
id,year,month,date,day,description,ranking
,,3,1,,,
,,3,2,,,
,,3,3,,,
,,3,4,,,
,,3,5,,,
,,3,6,,,
,,3,7,,,
,,3,7,,"Saints Perpetua and Felicity, Martyrs",
,,3,8,,,
,,3,8,,"Saint John of God, Religious",
,,3,9,,,
,,3,9,,"Saint Frances of Rome, Religious",
,,3,10,,,
导致错误的列是id,year,ranking。它们都是整数列。列id是自动递增。其他列是INT(11),默认值为NULL。感谢。
答案 0 :(得分:1)
CSV没有“空”的概念。无法区分null为空的字段和具有合法空值的字段(例如空字符串)。在插入查询之前加载它们时必须按下行,用适当的NULL替换任何“空字符串”
e.g。
$row = fgetcsv(...);
$row[0] = 'NULL';