Assalamualaikum..
"Ya Allah, aku berdoa kepadaMu dengan segala kebaikan seperti yang Rasulullah doakan, dan aku juga berdoa kepadaMu agar dijauhkan dari segala keburukan seperti yang Rasulullah doakan.. Amin Ya Rabbal Alamin.."
Oleh kerana terlalu ingin cepat siapkan sistem, terlalai untuk memeriksa kod untuk mysql_connect dalam fail dbconfig.php.
$db1 = mysql_connect('db1.hu.sm.my', 'sistem1', 'password1');
$db2 = mysql_connect('db2.hu.sm.my', 'sistem2', 'password2', TRUE);
mysql_select_db('dbname1', $db1);
mysql_select_db('dbname2', $db2);
Oleh kerana kedua mysql_connect ini adalah menggunakan berlainan parameter, maka php mysql_connect tidak memerlukan parameter ketiga untuk $db2.
Dan kerana kelemahan diri ini, tak tersangka-sangka yang satu perkataan itu telah menyebabkan setiap kali sistem memanggil fail ini untuk sambungan kepada pangkalan data, $db2 akan mencipta link baru bermakna server akan membuka sambungan baru ke pelayan pangkalan data walaupun telah wujud sebelum ini.
Menjadikan kuota pelayan mysql 5 yang 100+1 itu penuh dengan sekejap sahaja.
Dan menjadikan pelayan pangkalan data pengguna HUSM penuh dengan sambungan dari sistem yang kecil ini.
Dan sistem-sistem lain tidak dapat login.
dan ramai orang susah. Maaf untuk semua.
The workaround is to require that the second MySQL connection is new: $db1 = mysql_connect($dbhost, $dbuser, $dbpass); $rv = mysql_select_db($dbname1, $db1); $db2 = mysql_connect($dbhost, $dbuser, $dbpass, TRUE); $rv = mysql_select_db($dbname2, $db2); Now, $db1 should have selected $dbname1, and $db2 should have selected $dbname2. This has been documented on the mysql_select_db page as well. Note: This occurs only when the server, username, and password parameters are identical for each mysql_connect statement.
Maka
ini bermakna jika parameter untuk server kedua adalah tak sama dengan paramater untuk server pertama, tidak perlu kita letak 'TRUE' untuk parameter ketiga bagi server kedua.
Jika diletakkan, maka php akan mencipta satu sambungan baru setiap kali kita include atau require fail ini dalam mana-mana fail aplikasi kita.
Dan oleh kerana tidak memahami betul-betul fungsi TRUE ini dalam mysql_connect, server pangkalan data pengguna / staf dah congested.
beringat-ingat lah kita semua.. ( atau aku je yang tak tau )
namun, terima kasih dan syukur kerana pengalaman ini membuahkan satu ilmu yang sangat berguna di masa hadapan.
Sekian dahulu, doakan semoga keluarga aku sehat dan disembuhkan segala penyakit.. Amin
Ulasan
Catat Ulasan
Comment