タイトルに説明されているように、CSVファイルをPHPページにアップロードしてテーブルにデータをインポートしようとしています。 これは私がCSVファイルからPHPを使用してMysqlテーブルにデータをインポート
<?php
\t \t \t \t \t
\t \t \t \t \t $servername = "localhost";
\t \t \t \t \t $username = "root";
\t \t \t \t \t $password = "";
\t \t \t \t \t $dbname = "Test";
\t \t \t \t \t // Create connection
\t \t \t \t \t $conn = new mysqli($servername, $username, $password, $dbname);
\t \t \t \t \t // Check connection
\t \t \t \t \t if ($conn->connect_error) {
\t \t \t \t \t \t die("Connection failed: " . $conn->connect_error);
\t \t \t \t \t }
\t \t \t \t \t
\t \t \t \t \t
?>
<html>
\t <body>
\t \t
\t \t <form name="import" method="post" enctype="multipart/form-data">
\t \t <input type="file" name="file" /><br />
<input type="submit" name="submit" value="Submit" />
\t \t </form>
\t \t
\t \t <?php
if(isset($_POST["submit"]))
{
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file, "r");
$c = 0;
while(($filesop = fgetcsv($handle, 1000, ",")) !== false)
{
$name = $filesop[0];
$email = $filesop[1];
$sql = "INSERT INTO `xl` (`Name`, `Email`) VALUES ('$name','$email')";
}
if ($conn->query($sql) === TRUE) {
\t echo "You database has imported successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
?>
\t </body>
</html>
問題は、ファイルを提出する際、私のファイルの最後の行のみがテーブルに挿入されます、ということである
EggSlabからもらったコードです。コードをcsvファイルのすべての行に挿入するための変更を提案しますか?参照の例以下
あなたのwhileループの各反復のためのクエリを実行します。ここでは、最後に要求を実行するだけですので、一度にそれはあなたのCSVの最後の行です – Berserk
なので、わかりませんがwhileループでif else文を動かそうとします – Berserk
whileループ。 –