Ketika membangun sebuah Aplikasi Web, umumnya Web Developer melakukannya di komputer lokal (localhost). Mulai dari web server, database, dan file-file script yang digunakan untuk Aplikasi Web, semuanya dikerjakan dan ditempatkan di komputer localhost. Bukan di komputer server. Hal ini wajar, karena di samping untuk mempercepat waktu proses pengembangan, waktu akses ke Aplikasi Web di komputer localhost jauh lebih mudah dan cepat. Apalagi jika Web Developer tidak selalu terhubung ke komputer server, maka satu-satunya komputer yang bisa diandalkan adalah komputer localhost.
Dengan bekerja di localhost maka Web Developer menjadi selalu memiliki backup di komputernya sendiri sebelum file-file script tadi diunggah ke komputer server (web server) yang sebenarnya. Dalam proses pengembangan, sering kali Web Developer harus melakukan rangkaian pekerjaan mulai dari menulis/mengubah kode di file script, mengetesnya kembali, sampai akhirnya memutuskan bahwa semuanya berjalan dengan baik. Jika semua file-file script sudah selesai dibuat dan Aplikasi Web sudah ditest di komputer localhost dan dipastikan Aplikasi Web berjalan dengan baik, barulah Web Developer akan mengunggah file-file script tadi ke komputer server.
Ketika file-file script tadi sudah berhasil diunggah ke komputer server, maka Aplikasi Web tadi tidak bisa langsung dijalankan sebagaimana mestinya. Mengapa? Karena setting database yang digunakan di komputer localhost biasanya berbeda dengan setting koneksi database di komputer server. Artinya? Web Developer harus mengubah setting koneksi database di file script yang sudah diunggah ke komputer server tadi. Jika tidak, maka Aplikasi Web tersebut tidak bisa dijalankan dengan baik.
Tahukah Anda, bahwa mengganti setting koneksi database di file script setiap kali setelah diunggah ke web server adalah pekerjaan yang sepele tapi juga cukup menjengkelkan? Bagaimana tidak? Karena jika Anda lupa menyesuaikannya, maka Aplikasi Web Anda akan menimbulkan error tidak dapat menghubungi database. Akhirnya Aplikasi Web Anda tidak dapat digunakan sama sekali oleh Pengguna.
Menyesuaikan setting koneksi database di file script yang sudah diunggah ke komputer server jelas sangat penting dilakukan. Tapi sayangnya, karena selalu akan ada jedah waktu yang terjadi mulai dari ketika file script yang berisi koneksi database tadi berhasil diupload sampai saat Web Developer selesai menggantinya, maka itu artinya selalu ada kemungkinan terjadi error di Aplikasi Web tadi. Tentu saja hal ini sebaiknya harus dihindari, bukan? Seharusnya, Web Developer tidak perlu lagi menyesuaikan setting koneksi database setiap kali file-file yang sudah di-generate oleh PHPMaker tadi diunggah ke komputer server.
PHPMaker dapat mengatasi semua permasalahan di atas dengan sangat mudah. PHPMaker menyediakan sebuah server event yang bernama Database_Connecting. Web Developer dapat menggunakan dua koneksi database yang berbeda di event ini. Koneksi ke database untuk komputer di localhost, dan yang lainnya koneksi database untuk komputer di server. Ini satu lagi bukti dari sekian banyaknya fitur yang membuat PHPMaker sangat fleksibel digunakan untuk membangun Aplikasi Web Anda.
Berikut ini contoh kode yang bisa Anda gunakan di server event Database_Connecting pada Aplikasi Web yang di-generate oleh PHPMaker. Anda bisa menambahkannya dari lokasi: Server Events -> Global -> All Pages dalam aplikasi PHPMaker:
function Database_Connecting(&$info) { if (ew_CurrentUserIP() == "127.0.0.1") { // setting koneksi database di komputer localhost $info["host"] = "localhost"; $info["user"] = "aaa"; // sesuaikan dengan username database di komputer localhost $info["pass"] = "bbb"; // sesuaikan dengan password database di komputer localhost $info["db"] = "ccc"; // sesuaikan dengan nama database di komputer localhost } else { // setting koneksi database untuk komputer server $info["host"] = "www"; // sesuaikan dengan ip address atau hostname komputer server $info["user"] = "xxx"; // sesuaikan dengan username database di komputer server $info["pass"] = "yyy"; // sesuaikan deengan password database di komputer server $info["db"] = "zzz"; // sesuaikan dengan nama database di komputer server } }
Contoh kode di atas menggunakan database MySQL. Untuk database lainnya seperti Microsoft SQL Server, tentu saja ada perbedaan. Anda bisa menggunakan Connection String yang dihasilkan oleh PHPMaker ketika Anda menentukan setting koneksi database ke SQL Server. Jangan lupa, setelah Anda menentukan setting koneksi database yang fleksibel tadi, generate ulang semua file script dengan menggunakan PHPMaker seperti biasa.
Dengan mengoptimalkan server event Database_Connecting ini, maka Anda sebagai Web Developer tidak perlu lagi repot-repot mengganti setting koneksi database setiap kali file-file script yang sudah di-generate oleh PHPMaker diunggah ke komputer server.
elida samosir mengatakan
Ito bisa minta tolong buat aplikasi sistem informasi atau database menara telekomunikasi.
Masino Sinaga mengatakan
Bisa ito. Silahkan kirim info detail-nya ke email aku: masino.sinaga@gmail.com.
hakim mengatakan
maaf ni pertanyaannya terlalu mendasar. sebelumnya saya beberapa kali koneksi phpmaker ke database mysql engga ada masalah….tapi kali ini mentok y? list databasenya ga ketemu. padahal phomyadmin nya udah running; show databasenya di cmd sudah jalan; tambah data di phpmyadmin sudah ok…isiannya di phpmaker udah engga ada masalah ; mysql, localhost, root. tapi kok databasenya ga pernah muncul? apa karena saya pake port 81 di web server?
trimakasih banyak jawabannya
Masino Sinaga mengatakan
Seharusnya tidak ada hubungan antara port yang digunakan oleh web server dengan koneksi ke database MySQL, kecuali port yang digunakan keduanya sama, maka hanya salah satu yang bisa jalan.
Coba test di komputer lain. Anda menggunakan web server apa? Saya pakai Wampserver tidak pernah ada masalah selama ini.
hakim mengatakan
saya belum sempet coba di computer lain. namun dengan setingan yang persis sama; saya pake Xampp 3.2.1. saya coba pake ScriptCase…. koneksi ke mysqlnya normal-normal saja y. namun saya agak khawatir pake ScriptCase karena comunnity respontime nya saya perhatikan terlalu lama. dan tidak sedikit yang kecewa…
betulll…harusnya dengan menjalankan Mysql tanpa menjalankan apache sudah bisa konek…saya coba di ScriptCase engga ada masalah.
trimakasih Pak, setelah sy reinstall PHPMaker sudah bisa terkoneksi….
Masino Sinaga mengatakan
Sama-sama, dan syukurlah sudah bisa setelah instal ulang PHPMaker-nya. Kemungkinan terjadinya gagal terhubung ke database terjadi karena instalasi PHPMaker yang sebelumnya ada file yang corrupt.
Mengenai response-time di forum diskusi, memang benar, bahwa PHPMaker jauh lebih baik dibandingkan ScriptCase. Hal ini kebetulan sudah pernah saya ulas pada artikel ini: Sekali Lagi, Mengapa Saya Pilih PHPMaker, Bukan ScriptCase, Bukan PHPRunner?.
hendra mengatakan
wah saya juga barusan mengalami hal yg sama, koneksi SQLserver dari PHPmaker tdk bisa, padahal dari query analiser bisa, Saya sdh coba semua service SQL server direstart, namun tetap PHPmaker tdk bisa konek.
Coba URL yang juga tidak bisa konek.
Akhirnya PHPmaker saya reinstal ulang dan bisa.
Anehnya lagi URL coba saya buka kok langsung bisa.
Apakah bpk pernah mengalami spt ini ya ?
Masino Sinaga mengatakan
Belum pernah mengalami seperti itu. Selama ini lancar-lancar saja.
hendra mengatakan
Saya ada demo link dari vendor yg menawarkan CRM ke sini http://sfa.creativehead.net , demo sd 15 juni 2015
User :tanobel pass : tanobel.
Apakah phpMaker bisa utk membangun seperti itu pak ? 🙂
Masino Sinaga mengatakan
Bisa. 🙂
Untuk fitur Report dalam bentuk grafik dan ditampilkan di Dashboard, bisa dikolaborasikan dengan PHP Report Maker.
Artinya, Report dan Dashboard yang dihasilkan oleh project PHP Report Maker, bisa diintegrasikan ke dalam aplikasi web yang dihasilkan oleh project PHPMaker.
aries mengatakan
Pak Masino Sinaga,
Untuk server event itu letaknya dimana ya ?
ya saya kesulitan ketika sudah berjalan mulus upload ke HOSTING tp ketika perekaman database dilakukan maka sama sekali tidak ada data yg tampil. atau ketika di localhost data sudah ada dan ketika database di import ke hosting maka data tersebut tidak ada sama sekali.
Terima kasih dan mohon solusinya
Masino Sinaga mengatakan
Letaknya di panel sebelah kanan setelah Anda mengklik salah satu table di panel Database sebelah kiri dari project PHPMaker Anda.
aries mengatakan
Terima kasih,
Jadi script diatas diletakkan di Server events–> Global –> All Pages –> Database_Connecting ?
sebelum upload ke HOSTING dirubah dulu “bagian database connecting tsb ?”
Masino Sinaga mengatakan
Iya.
aries mengatakan
Pak Masino sinaga,
program dan database sudah ter upload ke HOSTING, namun ketika running dan input data pesannya “add succeeded” tp tampilan data yg seharus masuk ke field tdk masuk sama sekali.
Dimaana saya harus cek …./ kesalahan saya ?
Masino Sinaga mengatakan
Cek dengan mencoba pada table lain.
aries mengatakan
Pak Masino Sinaga,
1. Mungkin kan perbedaan Versi PHPMyAdmin di localhost dan hosting menyebabkan project tdk bisa membaca database ?
2. Kelihatannya pembuatan table di Phpmyadmin “tanpa sengaja” menggunakan MARIADb, bagaimana merubah ke Mysql ? apakah ini penyebab database tak terbaca dan tdk bertambah [ replace] ?
Terima kasih
Masino Sinaga mengatakan
1. Mungkin saja. Selebihnya silahkan Anda analisis sendiri. 😛
2. Saya belum pernah menggunakan MariaDB, dan tidak memastikan apakah jika hasil pembuatan table di phpMyAdmin menggunakan MariaDB maka jadi menimbulkan masalah atau tidak. Tapi yang mau saya katakan adalah, jika Anda di awal menggunakan MySQL, gunakanlah MySQL juga di server remote/live. Itu logika yang paling sederhana dan cara yang paling aman untuk stay out of trouble.
🙂
Erwin mengatakan
Pak Masino Sinaga,
kalo untuk PHP Maker koneksi ke database itu function nya dimana ya? di file apa? terimakasih
Masino Sinaga mengatakan
File ewcfg*.php dan phpfn*.php.
Fendi Oviyanto mengatakan
Dear Pak Masino
Saat ini saya sudah mulai sedikit2 belajar konsep dari php maker dan php report maker itu sendiri, walo masih trial pak heheh…
Saya rasa cukup oke untuk diterapkan dalam development kedepannya, tapi sebelum itu saya harus belajar pak struktur dasar, cara kerja dari php maker itu sendiri secara logic scriptnya…
Kalo boleh tahu, bapak ada semacam panduan atau buku mengenai php maker pak? agar saya bisa lebih dalam mempelajari aplikasi ini.
Terimakasih sblmnya
Rgds
Masino Sinaga mengatakan
Anda ingin panduan? Jawabannya: silahkan baca menu Help yang terdapat di aplikasi PHPMaker. Semua yang Anda butuhkan sudah diuraikan di sana dengan jelas.
Selain itu, artikel-artikel di situs ini juga bisa membantu Anda, untuk memberikan gambaran mengenai mudahnya menggunakan PHPMaker.
jal mengatakan
I use this above code to connect in SQL server 2008, but nothing happen.
I don’t know what is my missing part
Masino Sinaga mengatakan
You should use connectionstring instead. Please read this article for more info: Ini Dia Perubahan Kode yang Mendasar Antara PHPMaker Versi 11 dan 12.
jal mengatakan
Ok, with the above code?( if) and the else is the connection string right?
Masino Sinaga mengatakan
Yep!
jal mengatakan
I already implement the connection string but nothing happens.
I don’t what is my missing part .
Masino Sinaga mengatakan
Then double check your code. It seems your logic or your code is not correct. There is no issue regarding connectionstring on my side.
jal mengatakan
is this correct? the else statement is not running 🙁
Masino Sinaga mengatakan
Your logic is not correct. Do not mixed the MySQL setting with the SQL Server connectiong setting. You have to use the same config in the other side of if else block!
As explained in the code example in the article I mentioned above, use connectionstring instead of ConnectionString!
jal mengatakan
Hi,
Thank you for your help, just want to know if I need to use if and else or just this one
only?
Thank you 🙂
Masino Sinaga mengatakan
I answer your question by asking you a question: “What do you think?” 🙂
jal mengatakan
I use that only, but I don’t know why is not running 🙁
Masino Sinaga mengatakan
Of course it won’t work. You have to learn and understand the logic in the Database_Connecting server event.
In other words, you have to handle the connectionstring for the localhost connection and for the remote connection.
Do not get confused about my comment that told you about do not mix about the MySQL and SQL Server connection above.
All you have to do is to handle the SQL Server connection, one for the localhost server, and the other for the remote server.
jal mengatakan
Hi,
I’m little confused, I’m just a beginner do you have any sample for this so that I have any reference and guide.
Thank you, for your help
Much appreciated
Masino Sinaga mengatakan
Change your code in your comment on Mei 18, 2016 at 8:15 am above.
Just remove the MySQL connection part, and replace it with the connectionstring that you use for localhost.
jal mengatakan
is this correct ?
Masino Sinaga mengatakan
Just try it, then you will know whether it is correct or not.
jal mengatakan
I try it already but not running, do I need to adjust the
Data Source in localhost ?
Masino Sinaga mengatakan
Do not use ConnectionString, use connectionstring instead!
Of course you need to adjust your database connection in localhost. That’s the stupid question you ask!
jal mengatakan
I’m sorry for that question,
Yeah I already use connectionstring, but its not running
🙁
Masino Sinaga mengatakan
It should work properly if your database connection info is correct.
yusup mengatakan
maaf pa, ko di saya error terus padahal saya cek beberapa kali sudah bener, kode errornya seperti ini ;
Parse error: syntax error, unexpected ‘$info’ (T_VARIABLE) in C:\xampp\htdocs\aset\phpfn13.php on line 4981
Masino Sinaga mengatakan
Apa kode di baris 4981 file phpfn13.php tersebut?
yusup mengatakan
kodenya cuman menunjuk pada baris ini –> $info[“host”] = “localhost”;
Masino Sinaga mengatakan
Apakah Anda menggunakan server event Database_Connecting? Kalau iya, copy-kan kode selengkapnya ke sini.
andika mengatakan
Pak masino, saya baru trial menggunakan phpmaker 2019,
sebelumnya saya gunakan kode ini di phpmaker 2017 dan berhasil, namun di phpmaker 2019 data di halaman list tidak muncul, semua table kosong dan tidak ada keterangan error apapun
kodenya seperti ini :
if ($info[“id”] == “myDB” && CurrentUserIP() == “127.0.0.1”){ //ip local server
$info[“host”] = “localhost”;
$info[“user”] = “root”;
$info[“pass”] = “”;
} else { // setting koneksi database untuk komputer server di hosting
$info[“host”] = “localhost”; // sesuaikan dengan ip address atau hostname komputer server
$info[“user”] = “nama_user”; // sesuaikan dengan username database di komputer server
$info[“pass”] = “”; // sesuaikan deengan password database di komputer server
$info[“db”] = “myDB”; // sesuaikan dengan nama database di komputer server
}
terima kasih
andika mengatakan
letak kesalahan nya dmn ya pak masino ?
Masino Sinaga mengatakan
Coba ganti “myDB” dengan “DB”, lalu coba lagi.
andika mengatakan
ttp gk bisa,
lalu tadi saya coba begini, dan datanya tampil, :
if ($info[“id”] == “appdemo” && CurrentUserIP() == “127.0.0.1”) { // Testing on local PC
$info[“host”] = “locahost”;
$info[“user”] = “root”;
$info[“pass”] = “”;
} else { // setting koneksi database untuk komputer server di hosting
$info[“id”] == “appdemo”;
$info[“host”] = “localhost”; // sesuaikan dengan ip address atau hostname komputer server
$info[“user”] = “root”; // sesuaikan dengan username database di komputer server
$info[“pass”] = “”; // sesuaikan deengan password database di komputer server
//$info[“db”] = “appdemo”; // sesuaikan dengan nama database di komputer server
}
tapi saat pas kode koneksi untuk hosting saya rubah datanya tidak tampil lagi, padahal saya jalankan di local PC
berikut kodenya
if ($info[“id”] == “appdemo” && CurrentUserIP() == “127.0.0.1”) { // Testing on local PC
$info[“host”] = “locahost”;
$info[“user”] = “root”;
$info[“pass”] = “”;
} else { // setting koneksi database untuk komputer server di hosting
$info[“id”] == “appdemoHOSTING”;
$info[“host”] = “localhost”; // sesuaikan dengan ip address atau hostname komputer server
$info[“user”] = “userHOSTING”; // sesuaikan dengan username database di komputer server
$info[“pass”] = “passHosting”; // sesuaikan deengan password database di komputer server
}
,mohon bantuannya
terima kasih
Rudy mengatakan
Pak saya mau tanya…
File php ketika d compile lewat localhost jalan ketika d upload ke doamin host malah gak jalan…
Masino Sinaga mengatakan
Biasanya penyebab hal ini karena setting koneksi database di localhost dan di remote server berbeda.
Untuk itulah disarankan agar Anda menggunakan server event Database_Connecting seperti pada contoh di atas, sehingga tidak perlu gonta ganti setting koneksi di file config setiap kali upload file script dari localhost ke remote server.
dayat mengatakan
maaf pak masino, sekalian mau tanya, kalo pake database_connecting, terus kita ada link tabel ke database yg berbeda, link tabel tersebut tidak bisa menampilkan data. bagaimana agar link tabel tersebut bisa tampil datanya meskipun kita pake database_connecting
Masino Sinaga mengatakan
Fitur Linked Tables di PHPMaker mendukung pemakaian server event Database_Connecting juga.
Caranya, tambahkan pemeriksaan if … else … di dalam server event Database_Connecting, dengan memeriksa berdasarkan id database connection-nya, dan periksa juga apakah saat itu database diakses dari komputer localhost atau dari remote server.
Untuk id dari database connection yang digunakan oleh Linked Tables tersebut, bisa Anda lihat dari file ewcfg.php file.
Hehe, gampang kan? PHPMaker ternyata diam-diam sudah menyediakan kemampuan ini. 😉
Bayu mengatakan
Goodday Bang,
Saya pakai phpmaker 2017 mau bikin koneksi kedua ke ip dan database berbeda.
Jenis databasenya sama MySQL.
Bagaimana cara bikin koneksinya di page code saat row inserting atau updating?
Jadi actionnya adalah saat insert row, program juga insert ke database lain.
Supaya fleksibel bisa ganti saat trial dan aktual.
Terima kasih.
Masino Sinaga mengatakan
Wah, kalau versi 2017 itu sudah tidak didukung lagi. Disarankan pakai versi terakhir saat komentar ini saya tulis, yaitu versi 2021.
Bayu mengatakan
Dikasih clue aja Bang. Apakah bikin koneksi standar PHP atau saya tambahin di ewcfg dan phpfn?
Kalau nambahin di ewcfg/phpfn, gimana cara pakainya saat row_update?
ps. kalau ganti ke 2021, banyak banget yang harus diubah, Bang. :((
Masino Sinaga mengatakan
Clue-nya, pakai fitur Linked Tables. Baca dari menu Help-nya untuk info dan contoh lebih lanjut.
Eka Dalas Pangestu mengatakan
Hallo pak masino izin bertanya
Saya menggunakan phpmaker 2022
Tapi saat saya hosting tampilan tidak muncul dan terdapat error yaitu No such file directory
Padahal koneksi pada config.development dan config.production sudah saya sesuaikan