Didalam tutorial kali ini kita akan mulai masuk dengan kode program untuk membuat koneksi antara PHP dengan MySQL. Seperti yang pernah kita bahas, PHP menyediakan 3 buah extension untuk koneksi PHP-MySQL. Mulai dari tutorial ini dan beberapa tutorial kedepan, saya akan membahas cara koneksi menggunakan mysql extension. Kali ini kita akan membahas cara membuat koneksi antara PHP dengan database MySQL. Proses koneksi ini menggunakan fungsi mysql_connect().
Untuk penulisan program, saya tidak menyarankan mysql extension, tetapi sebaiknya menggunakan mysqli extension dan PDO. Tutorial mengenai mysqli dan PDO akan kita bahas mulai dari tutorial PHP MySQL part 12 keatas.
Jika anda menggunakan PHP 7 (yang terdapat di XAMPP 7), mysql extension ini SUDAH TIDAK DAPAT BERJALAN. Kita harus menggunakan mysqli extension atau PDO.
Mengenal Fungsi koneksi PHP-MySQL: mysql_connect()
Untuk membuat koneksi antara PHP dengan MySQL menggunakan mysql extension, PHP menyediakan fungsi mysql_connect().
Fungsi ini diibaratkan sebagai cara untuk login kedalam MySQL Server. Fungsi mysql_connect() membutuhkan 3 argumen, dan mengembalikan nilai fungsi berupa 'variabel koneksi' ke MySQL.
Berikut adalah format dasar penulisan fungsi mysql_connect():
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');
- $link merupakan variabel yang akan menampung hasil dari fungsi mysql_connect (). Jika berhasil terhubung dengan MySQL, $link akan berisi nilai yang berfungsi sebagai 'link koneksi' dengan MySQL. Link koneksi ini akan dibutuhkan sepanjang program PHP-MySQL nantinya. Di dalam PHP, variabel $link ini dikenal dengan istilah handler, yakni variabel yang meng-handle koneksi ke MySQL.
- mysql_host adalah argumen pertama dari fungsi mysql_connect(). Nilai mysql_host diisi dengan alamat komputer dimana MySQL Server berjalan. Jika anda menjalankan MySQL menggunakan XAMPP di komputer yang sama dengan tempat web server Apache berjalan, maka alamat ini bisa diisi dengan 'localhost' atau '127.0.0.1'. Namun jika MySQL server dijalankan dari komputer lain, argumen ini akan berisi IP address dari komputer tersebut.
- mysql_user adalah nama user MySQL dimana kita akan login. Seperti 'root', 'admin', 'andi' dan lain-lain tergantung kepada user MySQL yang telah terdaftar di server. Cara membuat dan menghapus user MySQL telah saya bahas pada Tutorial Cara Membuat dan Menghapus User MySQL (CREATE USER). Jika anda menggunakan MySQL bawaan XAMPP, user 'root' dapat digunakan.
- mysql_password diisi dengan password dari user yang dibuat pada argumen mysql_user.
Variabel $link yang berisi link koneksi PHP-MySQL (hasil dari fungsi mysql_connect()), termasuk ke dalam kelompok tipe data khusus PHP yang disebut resources. Variabel Resources tidak bisa berdiri sendiri dan biasanya digunakan sebagai argumen untuk fungsi lain. Anda bebas mengganti nama variabel $link dengan nama lain, seperti $koneksi, $link_mysql, dll.
Jika koneksi dengan PHP gagal dilakukan, fungsi mysql_connect() akan mengembalikan nilai Boolean FALSE. Hasil FALSE ini akan disimpan dalam variabel $link dan bisa kita gunakan dalam perulangan IF untuk menampilkan error yang terjadi.
Cara Membuat Koneksi PHP dengan MySQL
Untuk mengetahui cara membuat koneksi antara MySQL dengan PHP, langsung saja kita masuk kedalam contoh kode program cara penggunaan fungsi mysql_connect().
Berikut adalah kode PHP untuk membuat koneksi dengan MySQL:
<?php //buat koneksi MySQL untuk user: root, tanpa password, alamat: localhost $link=mysql_connect('localhost','root',''); //cek apakah koneksi dengan MySQL berhasil if ($link)    {      //koneksi berhasil      echo "Koneksi dengan MySQL berhasil";    } else    {      //koneksi gagal      echo "Koneksi dengan MySQL gagal";    } //memeriksa nilai dari $link echo "<br />"; echo 'hasil var_dump variabel $link : '; var_dump($link); ?>
Jika koneksi dengan MySQL berhasil, maka di dalam web browser akan tampil gambar seperti berikut ini:
Pada bagian pertama kode program, saya membuat fungsi mysql_connect('localhost','root',"). Fungsi ini berarti saya mencoba login dengan MySQL Server yang berada di alamat localhost (komputer yang sama dengan web server berada), nama user 'root' dan password '' (string kosong, yang berarti tanpa password).
Fungsi mysql_connect() mengembalikan kondisi status koneksi ke dalam variabel $link. Variabel $link akan berisi link koneksi (bertipe resources) jika berhasil terkoneksi dengan MySQL, dan akan bernilai TRUE jika dikonversi menjadi Boolean.
Namun variabel $link akan berisi nilai Boolean FALSE jika PHP gagal login ke MySQL. Nilai $link ini selanjutnya bisa digunakan untuk pengecekan apakah koneksi berhasil atau tidak.
Jika terjadi kesalahan, misalkan saja saya mengubah password root menjadi '123456', maka tampilan web browser akan seperti berikut ini:
Seperti yang terlihat, PHP mengeluarkan pesan error mysql_connect(): Access denied for user 'root'@'localhost' (using password: YES), yang berarti login ke MySQL gagal karena salah password untuk user root.
Agar lebih informatif, diakhir program saya tampilkan nilai dari variabel $link dengan menggunakan fungsi var_dump(). Anda akan melihat bahwa variabel $link bertipe data 'resources' jika koneksi berhasil, dan bertipe data Boolean FALSE, jika koneksi gagal.
Selain user root, MySQL bawaan XAMPP juga berisi beberapa user lain. Berikut adalah daftar user tersebut:
Hal yang penting dari tabel diatas, MySQL membolehkan user dengan nama: ANY, yang berarti MySQL bawaan XAMPP membolehkan user dengan nama apapun untuk masuk ke MySQL Server, sehingga jika anda mengubah contoh kita menjadi: $link=mysql_connect('localhost','aku_siapa',"), PHP akan tetap berhasil masuk kedalam MySQL Server.
MySQL versi XAMPP memang tidak dirancang untuk keamanan, namun lebih kepada kemudahan dalam membuat kode program PHP.
Mengenal fungsi die() dan exit() dalam PHP
Salah satu fungsi PHP yang sering digunakan pada saat melakukan koneksi dengan MySQL adalah fungsi die() dan exit().
Sesuai dengan namanya, fungsi ini bertujuan untuk 'membunuh' atau 'keluar' dari PHP. Kedua fungsi ini bertujuan untuk membuat proses PHP berhenti diproses pada saat itu juga (pada saat fungsi ini dipanggil).
Sebelum 'bunuh diri', fungsi die() dan exit() bisa menampilkan "pesan terakhir".
Berikut adalah penggunaan fungsi die() dalam membuat koneksi antara PHP dengan MySQL:
<?php //buat koneksi dengan MySQL $link=mysql_connect('localhost','root','123'); //cek apakah koneksi dengan MySQL berhasil if ($link) { //koneksi berhasil echo "Koneksi dengan MySQL berhasil"; } else { //koneksi gagal die("Koneksi dengan MySQL gagal"); echo "Pesan ini tidak akan pernah ditampilkan"; } ?>
Fungsi die() pada kode diatas akan menyebabkan proses PHP berhenti jika login ke database MySQL gagal dilakukan. Dengan menggunakan fungsi die(), kita bisa memastikan bahwa PHP tidak akan mengeksekusi perintah-perintah selanjutnya.
Apabila kita tidak menggunakan die(), maka PHP akan terus menjalankan proses berikutnya yang akan menghasilkan error (karena koneksi ke database memang tidak akan bisa dilakukan).
Menghentikan koneksi PHP MySQL dengan mysql_close()
Koneksi PHP dengan MySQL akan dihentikan secara otomatis pada saat eksekusi program selesai, yaitu pada saat halaman PHP selesai diproses, sehingga kita tidak perlu menghentikanya secara manual.
Namun jika anda ingin menghentikan koneksi dengan MySQL pada saat program PHP sedang berjalan, PHP menyediakan fungsi mysql_close(). Fungsi ini membutuhkan 1 buah argumen yang diisi dengan variabel 'link koneksi' hasil pemanggilan fungsi mysql_connect(). Variabel koneksi ini bersifat opsional, dan jika diabaikan maka PHP akan menggunakan koneksi mysql terakhir.
Berikut adalah contoh penggunaan fungsi mysql_close():
<?php //buat koneksi dengan MySQL $link=mysql_connect('localhost','root','123'); //...Kode Program PHP-MySQL //...Kode Program PHP-MySQL //...Kode Program PHP-MySQL Â //menghentikan koneksi dengan MySQL mysql_close($link); //...Kode Program PHP //...Kode Program PHP ?>
Dalam tutorial kali ini, kita telah berhasil membuat koneksi antara PHP dengan MySQL Server. Namun untuk 'berkomunikasi' dengan database dalam MySQL, harus menggunakan "query". Dalam tutorial berikutnya kita akan membahas cara menjalankan query MySQL dari PHP dengan fungsi mysql_query.
terimakasih infonya. Saya mengalami masalah yang sama dengan materi yg sedang dibahas. kesalahan saya terjadi saat saya membuat data base baru pada website yang sama untuk aplikasi blog dalam website. Saya sudah menghapus nama database untuk blog tersebut dan tinggal data base lama untuk website saya. Namun setelah data base blog saya hapus, website tetap tidak bisa tampil. Apakah berarti ada perubahan password saat saya membuat data base tambahan ? Apakah yang harus saya lakukan. Terimakasih sebelumnya.
Bisa jadi penyebabnya itu mas, tapi memang banyak kemungkinan lain, misalnya file konfigurasi ada yang salah, alamat server salah, username yang digunakan masih memakai username yang lama (jika sudah diubah untuk web yang baru), nama database masih nama yang lama, dll.
Atau bisa juga minta bantuan ke pengelola web hosting.
Mas, bagaimana cara menuliskan host yang benar untuk menggantikan 'localhost' ?
Saya coba membuat koneksi dengan database di hosting gagal terus.
Alamat host MySQL bisa ditanya ke penyedia hosting mas. Biasanya informasi ini juga sudah diberikan pada saat pertama kali menyewa. Beberapa hosting tetap menggunakan 'localhost', tapi ada yang berupa alamat IP.
Kalau mengenai user dan password MySQLnya, bisa kita buat sendiri dari CPanel.
kalau masalahnya gini gimana ya mas "Warning: mysql_connect(): No such file or directory"
kesalahannya ada pada line pas buat koneksinya?
mohon bantuannya gan maklum masih newbie , trima kasih
Menggunakan Linux atau Mac OS y mas? dari sumber yang saya baca, bisa dicoba dengan mengganti alamat localhost menjadi 127.0.0.1, sehingga kodenya menjadi:
$link=mysql_connect('127.0.0.1','root',");
Mudah2an bisa membantu..
Ana selama ini membuat koneksi tanpa diakhiri dengn close mysql. Secara umum tampilan isi database tdk ada masalah. Tapi terkadang juga situs tdk bisa diakses, dengan pesan error tdk bisa koneksi ke database. Nah, apakah ada pengaruhnya gan, karn tdk pakai close database? Apakah close mysql ini wajib hukumnya dalam setiap query? Trims atas jawabannya.
G harus kok gan, PHP secara otomatis akan memutus koneksi ke MySQL begitu halaman selesai diproses. Fungsi mysql_close() digunakan untuk memastikan proses ini saja.
Kalau situs kadang tidak bisa diakses, menurut saya masalahnya bukan di kode PHP, besar kemungkinan servernya yang bermasalah, mungkin terlalu sibuk (overload) atau memang dibatasi hingga jumlah tertentu…
Mau tanya mas, gimana cara execute file .sql, terus copy paste file .php ke server dan edit sql username & password. Saya lagi belajar membuat aplikasi android, mohon bantuannya. Terma kasih
tutorial yang sangat bagus mas, saya suka…
master mohon bantuannya…..saya memiliki web di hosting dan database dikomputer saya dirumah menggunakan Xampp, IP Public dan mikrotik. saya ingin mengkoneksikan database yang dihosting ke database yang ada dirumah saya dikarenakan database yang dihosting sudah Overload. Bagaimana caranya master….Terimakasih. Mohon balas ke email saya
Saya belum pernah coba gan, tapi kalau memang di rumah agan punya alamat IP sendiri (biasanya hanya ada di layanan ISP kabel kelas atas), nanti tinggal pakai alamat IP itu saja di kode PHPnya. Seperti kode berikut:
$link = mysqli_connect("alamat_ip_agan", "root", "", "universitas");
Dengan syarat MySQL server sudah jalan.
Tapi kalau komputer yang dipakai menggunakan modem GSM atau kabel yang biasa2 saja, kita g dikasih alamat IP tetap (dapat IP dinamis).
Saran saya sebaiknya upgrade paket hosting saja, atau pakai VPS biar lebih lega n bisa atur sendiri ukuran database MySQL yang diperlukan.
mas.. saya kan lagi magang.. disuruh bikin laporan dengan ireport setelah saya coba buat datasource nya kok muncul pesan ini "SQL problems: Access denied for user 'admin'@'localhost' (using password: YES)" udah berkali-kali saya coba
Kemungkinan besar user dan password adminnya salah gan, bisa di cek lagi password user MySQLnya…
Kalo masalahnya seperti ini, apa yg salah ya:
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\travel\config\koneksi.php:8 Stack trace: #0 {main} thrown in C:\xampp\htdocs\travel\config\koneksi.php on line 8
padahal script udah sesuai :
<?php
$server = "localhost";
$username = "root";
$password = "";
$database = "travel";
// Koneksi dan memilih database di server
$connect=mysql_connect($server,$username,$password);
if(connect){
echo "koneksi berhasil";
}
else {
echo "koneksi gagal";
}
mysql_select_db($database) or die("Database tidak bisa dibuka");
?>
Agan pakai XAMPP 7 y? Untuk PHP versi terbaru, yakni PHP 7 yang ada dipaket XAMPP 7, fungsi mysql extension seperti mysql_connect() memang tidak didukung lagi. Agan bisa menggunakan mysqli extension, dengan fungsi yang mirip: mysqli_connect().
Jadi untuk tutorial mysql extension, dilewati saja gan. Nanti sampai di mysqli baru di coba lagi https://www.duniailkom.com/tutorial-php-mysql-cara-menampilkan-data-dengan-mysqli-procedural-style/
apa sih fungsi msql_close kok saya gunakan gak ngefek apapun diprogram ini:
<?php
//buat koneksi dengan MySQL
$link=mysql_connect('localhost','root','');
//cek apakah koneksi dengan MySQL berhasil
if ($link)
{
//koneksi berhasil
echo "Koneksi dengan MySQL berhasil";
}
else
{
//koneksi gagal
die("Koneksi dengan MySQL gagal");
echo "Pesan ini tidak akan pernah ditampilkan";
}
?>
Seperti yang dijelaskan dalam artikel ini gan:
"Koneksi PHP dengan MySQL akan dihentikan secara otomatis pada saat eksekusi program selesai, yaitu pada saat halaman PHP selesai diproses, sehingga kita tidak perlu menghentikanya secara manual."
Jadi kalaupun mysql_close() tidak dipanggil, akan dijalankan otomatis oleh PHP.
Fungsinya ditulis manual agar kode program lebih rapi. Juga untuk aplikasi yang besar (ribuan baris kode program), akan lebih efisien memutus koneksi jika sudah tidak dibutuhkan lagi, tidak perlu menunggu PHP melalukannya.
Salam kenal mas,
wah saya suka sekali ma web nya, buat belajar PHP.
Sangat bermanfaat, semoga menjadi kebaikan buat penulis..
Mohon bantunnya klo saya ada kesulitan.hhehe
Siip, silahkan lanjut belajarnya…
Gan, kalau misalkan kita punya beberapa halaman PHP di satu IP yang sama, masing masing halaman membaca data dari database MySQL, apakah tiap tiap halaman harus dibuat fungsi koneksi PHP-MySQL nya baru bisa ngebaca data? Atau ada cara supaya fungsi koneksi nya dideklarasikan sekali, dan bisa dipakai untuk halaman halaman berikutnya.
Terimakasih Gan :)
mau nanya mas, itu hasil var_dump($link) hasilnya resource (3). kalo boleh tahu angka 3 itu dari mana ya?
terima kasih.
"; echo 'hasil var_dump variabel $link : '; var_dump($link); ?>
hanya muncul pesan itu?
mohon bantuannya
Saya juga sudah coba semua tutorial yang ada, tetapi tidak berjalan sebagaimana mestinya.
Databasenya tidak terbaca
Kemungkinan besar halamannya masih di save sebagai file .html (bukan .php) dan tidak dijalankan dengan cara mengakses alamat http:/localhost.
Menurut saya sebaiknya pelajari dulu tutorial PHP dasar, paham cara menjalankan file PHP biasa dan pemrograman dasar, baru kemudian masuk ke pemrograman PHP-MySQL. Cara menjalankan file PHP bisa kesini: https://www.duniailkom.com/cara-menjalankan-file-php-dengan-xampp/
server php Anda tidak memuat modul mySQL atau Anda tidak dapat menggunakan fungsi koneksi mysql
Ada yang bisa bantuu untuk case tersebut.. Saya tidak dapat membuat koneksi dan tidak dapat select dengan database yang telah saya buat di phpmyadmin..
Ini pakai kode program yang sudah jadi ya? Paling pas coba tanya ke programmer yang membuat kode tersebut, mana tau ada konfigurasi yang mesti diubah lagi.
Atau tebakan saya ini adalah kode program yang masih menggunakan mysql extension (kode program lama), solusinya bisa pakai XAMPP 5.6, karena kalau pakai XAMPP 7 keatas (PHP 7), fungsi koneksi mysql memang sudah tidak tersedia lagi.
Kan sya uda coba cara koneksi. Yg tampil mlh kek gni :
Koneksi berhasil
Hasil var_dump $link:object(mysqli)#1(19) dst gtu smpe ["Warning_count"] =>int(0)}
Kyk gtu gan.
Penyelesaiannya gmna ya gan?
G masalah, itu artinya sudah berhasil terhubung. Hasil var_dump() memang sedikit berbeda untuk versi PHP saat ini.
Siang Mas, terimakasih ilmunya selama ini, saya mulai dari SQL , sekarang mencoba
connect SQL dan PHP , tetapi keluar nya seperti ini mas :
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\belajar\Koneksi.php:3 Stack trace: #0 {main} thrown in C:\xampp\htdocs\belajar\Koneksi.php on line 3
Error tersebut berarti PHP tidak mendeteksi adanya fungsi mysql_connect(). Di PHP versi terbaru (PHP 7 ke atas), fungsi mysql_connect() memang sudah dihapus.
Solusinya, beralih ke mysqli_connect(). Tutorialnya bisa kesini: https://www.duniailkom.com/tutorial-php-mysql-cara-menampilkan-data-dengan-mysqli-procedural-style/