2

テキストファイルからコンテンツを読み取り、データベースに挿入するphpスクリプトを作成しました。テキスト ファイルには 3 つのエントリしかありませんが、while ループは 4 回実行されています。なぜかわからない??

ここに、スクリプトがあります

$con = mysql_connect("localhost","root","root") or die("Could not connect to server");
$db = mysql_select_db("bolly_songs",$con) or die("Could not select database");

$file1 = "ex_name.txt";
$file2 = "ex_link.txt";

$fp1 = fopen($file1,"r");
$fp2 = fopen($file2,"r");

$ctr =1 ;

while(!feof($fp1)){
    $text1 = fgets($fp1);
    $text2 = fgets($fp2);

    $id = "emov".$ctr;

    $query = "insert into example_table(movie_name, movie_link,movie_id) values('$text1', '$text2','$id')";

    $result = mysql_query($query) or die("Query failed ".mysql_error());

    echo "Data inserted in field $ctr with id as $id \n";
    $ctr++;
}

fclose($fp1);
fclose($fp2);

スクリプトは余分に 1 回実行されるため、テーブルに $id 値だけで行を挿入し、両方のフィールドを空のままにします。ありがとう!!

4

1 に答える 1

1

fgets読み取るものがない場合はfalseを返すため、ループ内でfalseが返されることを確認するか(===)、ドキュメントからループを次の例に変更してください。

while (($buffer = fgets($handle, 4096)) !== false) {
    if (!feof($handle)) {
        echo "Error: unexpected fgets() fail\n";
    }
    fclose($handle);
}
于 2012-10-19T22:40:08.670 に答える