我在PHP
中使用以下代码读取CSV
文件:
$file = fopen("customers.csv", "r");
while (!feof($file))
{
$rr = fgetcsv($file);
$name = $rr[0];
$surname = $rr[1];
$sql = 'INSERT INTO customer SET ...';
...
$s->execute();
}
fclose($file);
该代码将把CCD_ 3文件中的所有记录插入CCD_,但是它试图用CCD_ 5值再插入一行并且失败。
如何更正代码以仅插入在customers.csv
文件中?
fgetcsv
函数将遇到EOF
,但不会立即退出循环。相反,在while条件下检查EOF之前,您可以正常处理CSV行。只需在对fgetcsv
的调用之后立即添加对EOF
的检查(可能也在while循环中)。但您也可以执行while (true) {...}
,然后在fgetcsv
函数后立即遇到EOF
(或者如果$rr
为空)时"退出"while循环。(不确定php语法,否则我会发布确切的代码,但这个逻辑应该可以工作)