当我使用PHP将数据从CSV插入MySQL时如何处理奇怪的数字


How to deal with the strangeness number when I insert the data from CSV into MySQL by using PHP

有一个CSV文件,其中包含几列,例如:

(身份证、价格、地址)

但在价格栏中,有些奇怪

例如,如果一行中没有价格数据,则会显示"-"

另外,如果价格要大得多。 数字之间会有逗号,它将显示: $1,123,234.12

如何处理这种情况?

例如:

(1000, -, 纽约)

(1001,1,100,100美元,波士顿)

(1002, $100, 洛杉矶)

在CSV文件中,当使用PHP将这些数据插入MySQL数据库时,它应该显示:

(1000, 0, 纽约)

(1001, 1100100, 波士顿)

(1002, 100, 洛杉矶)

在数据库中

有人告诉我如何处理这个问题吗?我不知道如何处理这种情况。

您可以在导入之前进行一些清理,例如

function csv_clean($csv_file){
    $data = file_get_contents($csv_file);
    $data = str_replace(' -,', ' NULL,', $data);
    $data = preg_replace('/(?<='d),(?='d)|'$/', '', $data);
    file_put_contents($csv_file, $data);
}
csv_clean('data.csv');

这将以所需的格式保存CSV文件,然后您可以导入它。