Contoh Program PHP
Berikut adalah contoh program PHP yang akan: - Mencari file Excel terbaru di direktori tertentu.
- Mengonversi file Excel ke CSV menggunakan
xlsx2csv
. - Membuat koneksi ke MySQL menggunakan MySQLi.
- Membuat tabel
alamat
di database data_alamat
jika belum ada. - Memasukkan data dari file CSV ke dalam tabel menggunakan prepared statement agar insert data dilakukan dengan aman.
Contoh kode:
<?php // Konfigurasi koneksi MySQL $host = "localhost"; $user = "root"; $password = "password"; // Ganti dengan password MySQL kamu $database = "data_alamat"; // Membuat koneksi menggunakan MySQLi $conn = new mysqli($host, $user, $password, $database); if ($conn->connect_error) { die("Koneksi gagal: " . $conn->connect_error); } // Membuat tabel 'alamat' jika belum ada $createTable = "CREATE TABLE IF NOT EXISTS alamat ( id INT AUTO_INCREMENT PRIMARY KEY, nama VARCHAR(255), alamat TEXT, kota VARCHAR(100), kodepos VARCHAR(20) )"; if (!$conn->query($createTable)) { die("Gagal membuat tabel: " . $conn->error); } // Fungsi untuk mendapatkan file Excel terbaru dari direktori function getLatestExcelFile($directory) { $files = glob($directory . "*.xlsx"); if (empty($files)) return false; usort($files, function($a, $b) { return filemtime($b) - filemtime($a); }); return $files[0]; } // Tentukan direktori file Excel $excelDir = "/path/to/excel/files/"; // Ganti dengan path direktori file Excel $latestFile = getLatestExcelFile($excelDir); if (!$latestFile) { die("Tidak ada file Excel yang ditemukan!"); } echo "File yang diproses: $latestFile\n"; // Konversi file Excel ke CSV menggunakan xlsx2csv $csvFile = "/path/to/csv/output.csv"; // Ganti dengan path output CSV yang diinginkan $command = "xlsx2csv " . escapeshellarg($latestFile) . " > " . escapeshellarg($csvFile); system($command); echo "Perintah konversi: $command\n"; // Pastikan file CSV berhasil dibuat if (!file_exists($csvFile) || filesize($csvFile) == 0) { die("File CSV kosong atau tidak ditemukan setelah konversi!"); } // Membuka file CSV dan memasukkan data ke database dengan prepared statement if (($handle = fopen($csvFile, "r")) !== FALSE) { // Membaca header (asumsi baris pertama adalah header) $header = fgetcsv($handle, 1000, ","); // Menyiapkan prepared statement untuk insert data $stmt = $conn->prepare("INSERT INTO alamat (nama, alamat, kota, kodepos) VALUES (?, ?, ?, ?)"); if (!$stmt) { die("Gagal menyiapkan statement: " . $conn->error); } $stmt->bind_param("ssss", $nama, $alamat, $kota, $kodepos); while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { // Asumsikan file CSV memiliki kolom: Nama, Alamat, Kota, KodePos (urutan kolom 0, 1, 2, 3) if (count($data) < 4) continue; $nama = trim($data[0]); $alamat = trim($data[1]); $kota = trim($data[2]); $kodepos = trim($data[3]); // Eksekusi statement untuk setiap baris if (!$stmt->execute()) { echo "Error: " . $stmt->error . "\n"; } } fclose($handle); $stmt->close(); echo "Data berhasil dimasukkan ke dalam database.\n"; } else { die("Gagal membuka file CSV!"); } $conn->close(); ?>