次のコードを使用して、csvをmysqlにインポートしています。
if($_POST['sform'] == "1")
{
$fname = $_FILES['upload']['name'];
$chk_ext = explode(".",$fname);
if(strtolower($chk_ext[1]) == "csv")
{
$filename = $_FILES['upload']['tmp_name'];
$row = 1;
if (($handle = fopen($filename, "r")) !== FALSE)
{
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
{
$row++;
$data_entries[] = $data ;
}
fclose($handle);
}
foreach($data_entries as $line)
{
$sql = "INSERT into testposts(ID,UID,title,tags,desc) values('','$data[0]','$data[1]','$data[2]','$data[3]')";
$conn->execute($sql);
$conn->execute($line);
}
$msg = "Successfully Imported";
}
else
{
$error = "Invalid File";
}
}
更新しようとすると、すべての値が0として更新されます
私のcsvファイルは次のとおりです(例)
1,title,tags,send2
自動インクリメントされるため、PID値は含まれていません
だから私は私の2番目のバリエーションで試しました
if($_POST['sform'] == "1")
{
$fname = $_FILES['upload']['name'];
$chk_ext = explode(".",$fname);
if(strtolower($chk_ext[1]) == "csv")
{
$filename = $_FILES['upload']['tmp_name'];
$handle = fopen($filename, "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
{
$sql = "INSERT into testposts(ID,UID,title,tags,desc) values('','$data[0]','$data[1]','$data[2]','$data[3]')";
mysql_query($sql) or die(mysql_error());
//$conn->execute($sql);
}
$msg = "Successfully Imported";
}
else
{
$error = "Invalid File";
}
}
2番目のコードでは、期待どおりに値を正しくアップロードしますが、2回挿入します。
どんな助けでも大歓迎です、ありがとう