Pertama, anda perlu membaca dan membuang baris pengepala dalam CSV. Kemudian, menggunakan pertanyaan yang sesuai, disediakan dan berparameter, anda boleh mengemas kini pangkalan data dengan betul. Memandangkan tarikh dalam fail .csv berada dalam format yang betul, tiada tindakan diperlukan, tetapi ini mungkin tidak berlaku dengan fail CSV lain dan selalunya tarikh perlu diformat semula sebelum ia boleh disimpan dengan betul ke dalam jadual.
<?php //index.php $connect = mysqli_connect("localhost", "root", "1234", "ml_database"); $message = ''; if(isset($_POST["upload"])) { if($_FILES['product_file']['name']) { $filename = explode(".", $_FILES['product_file']['name']); if(end($filename) == "csv") { $handle = fopen($_FILES['product_file']['tmp_name'], "r"); // 讀取并忽略標題行 $data = fgetcsv($handle, 1000, ","); // 準備查詢一次 $query = "UPDATE my_table SET date = ?, births = ? WHERE data_id = ?"; $stmt = $connect->prepare($query); // 循環(huán)遍歷csv剩余的行 while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $stmt->bind_param('sss', $data[0],$data[1],$data[2]); $stmt->execute(); } fclose($handle); header("location: index.php?updation=1"); exit; // 重定向后一定要使用exit } else { $message = ''; } } else { $message = ''; } }
Nota: Saya menganggap kesemua 3 lajur adalah daripada jenis teks.
$stmt->bind_param('sss', $data[0],$data[1],$data[2]); ^^^
Jika date_id
是整數(shù)類型,您可以將其更改為'ssi'
,盡管3個s
biasanya berfungsi dengan baik juga.
Rujukan: