fopen php mysql 导入 - sql 中的空行

fopen php mysql import - empty row in sql

我正在使用下面指定的代码通过 php 和 fopen 将 txt 文件导入 mysql。它按预期从我的 txt 文件中导入所有数据行,但是无论 txt 文件包含什么,我的脚本总是添加一个额外的意外行,其中包含列数据 2 的空白字段。我检查了 txt 文件,没有空格或最后的空格。

mysql_connect("$dbhost", "$dbuser", "$dbpasswd") or die(mysql_error());
mysql_select_db("$dbname") or die(mysql_error());

$f = fopen("import.txt", "r");
while(!feof($f)) 
{
    $data = explode(" ", fgets($f));

    $data1 = 'foobar';
    $inputkey = $data[0];

    mysql_query("INSERT INTO `reviewdata` (data1, data2)
        VALUES ('$data1', '$inputkey')") or die(mysql_error());
}
fclose($f);

试试下面的代码。也可以看看 similar question。这个问题解释了为什么使用 feof 是错误的。

mysql_connect("$dbhost", "$dbuser", "$dbpasswd") or die(mysql_error());
mysql_select_db("$dbname") or die(mysql_error());

$f = fopen("import.txt", "r");
while(($data = fgets($f)) !== false) 
{
    $data = explode(" ", $data);

    $data1 = 'foobar';
    $inputkey = trim($data[0]);

    mysql_query("INSERT INTO `reviewdata` (data1, data2)
        VALUES ('$data1', '$inputkey')") or die(mysql_error());
}

fclose($f);