Database hidup untuk melayani aplikasi. Section ini menghubungkan MySQL dengan empat bahasa pemrograman populer, mengelola koneksi agar tidak bocor, menjalankan migration dengan aman, dan mengisi data awal lewat seeding.
Sambungkan PHP ke MySQL melalui dua jalur resmi: ekstensi mysqli dan PDO, lengkap dengan tabel perbandingan, pola koneksi-query-fetch, prepared statement dengan bind_param, penanganan error lewat mysqli_report, dan kebiasaan penutupan koneksi yang rapi.
Buka → # MySQL dan GoAkses MySQL dari Go lewat antarmuka standar database/sql dan driver go-sql-driver/mysql: format DSN, perilaku sql.Open yang malas, pola Query-Scan-rows.Err, Exec untuk INSERT, prepared statement, serta idiom error handling khas Go.
Buka → # MySQL dan PythonAkses MySQL dari Python dengan PyMySQL: koneksi dan cursor, fetchall, parameterized query dengan placeholder %s, context manager untuk tutup-otomatis, bedah kode baris-per-baris, serta perbandingan PyMySQL dan mysql-connector-python — dengan contoh yang benar-benar dieksekusi di lingkungan latihan.
Buka → # MySQL dan Node.jsAkses MySQL dari Node.js dengan driver mysql2: koneksi promise API, await query, destructuring hasil [rows, fields], rows sebagai array objek, placeholder ?, perbandingan gaya promise dan callback, serta bedah kode baris-per-baris — contoh dieksekusi nyata di lingkungan latihan.
Buka → # Database Connection PoolingKelola koneksi aplikasi ke MySQL dengan connection pooling: ukur biaya nyata handshake TCP dan autentikasi, gunakan createPool mysql2 yang dieksekusi nyata, pool DIY PyMySQL, ukuran pool versus max_connections server, anti-pattern satu koneksi per request, dan health check koneksi idle.
Buka → # Prepared Statements dalam AplikasiTerapkan prepared statement dari sisi aplikasi: bukti nyata query rakit-rakit yang bocor versus placeholder yang aman dengan PyMySQL, tabel placeholder tiap driver (%s, ?, bind_param), eksekusi berulang dengan executemany, serta perbedaan prepared sisi server dan interpolasi sisi klien.
Buka → # Database MigrationsKelola perubahan skema antar environment dengan database migrations: file SQL bernomor plus tabel pelacak schema_migrations, runner Python yang dieksekusi nyata dan idempoten, tabel tooling populer (Flyway, Liquibase, Alembic, Prisma), arah maju versus rollback, dan disiplin tim saat me-review migration.
Buka → # Database SeedingIsi tabel dengan data awal lewat seeding: beda seeding dan migration, file seed.sql idempoten yang dieksekusi nyata lewat mode batch, INSERT IGNORE versus ON DUPLICATE KEY UPDATE, seeding dari aplikasi dengan PyMySQL, data fixture untuk testing, dan aturan keamanan lintas environment.
Buka → # Menangani Database ErrorsTangani error MySQL dari sisi aplikasi: peta kode error umum (1045, 2003, 1049, 1062, 1451, 1452, 1213, 1205) beserta tindakannya, perbedaan error code dan SQLSTATE, demo nyata penanganan try/except PyMySQL untuk INSERT duplikat, pola retry untuk deadlock, serta aturan pesan ramah untuk pengguna dan detail untuk log.
Buka →