Koneksi database tidak stabil? solusinya?

eh, temen-temen butuh bantuan lagi nih!

saat koneksi dengan database mysql (XAMPP 1.7.3) terkadang saya:

untuk membaca table menggunakan:




$cri = new CDbCriteria;

$cri->select = '*';

$cri->condition = 'id_user=:id_user';

$cri->params = array(':id_user'=>(int)$id_user);

$users = UserModel::model()->find($cri);

echo $users->nama;



kadang menggunakan:




$id_user = $_GET['id_user'];

$users = UserModel::model()->find('id_user=?',array($id_user));

echo $users->nama;



dan anehnya itu kadang pake cara pertama bisa jalan, tapi pada file cara pertama tidak bisa jalan jadi pake cara kedua.

terus untuk meng-insert table:

kadang menggunakan:




$query = "

INSERT INTO users VALUES(

null,

'".date('Y-m-d H:i:s')."',

'".date('Y-m-d H:i:s')."')

";

$command = Yii::app()->db->createCommand($query);

$command->execute();



kadang menggunakan:




$insert = new CategoryModel;

$insert->nama = $nama;

$insert->keterangan = $keterangan;

$insert->id_user = $id_user;

$insert->save();



apa memang seperti itu? adakah solusinya?

thanx

Saya menebak, mungkin terjadi kesalahan penulisan koding.

Kadang jalan kadang nggak bisa saja diakibatkan variabel yang masih kosong dipassing ke codingnya (koding pertama), jadinya gak sukses.

Saya menebak, mungkin setingan rules-nya kurang pas atau setingan databasenya yg not null mungkin.

mungkin bisa cek print_r($users) biar lebih jelas, kalau error query biasanya throw error bla blaa…

kalau tdk error mungkin nilai kondisinya yg kosong.

Btw, $_GET[‘id_user’] harus int, misal : 101, 999, walaupun d manual disebut string.

Jadi misal $_GET[‘id_user’] = 101R, tidak akan valid, ketangkep preg_match.

klo ga salah…

eh, ini ada lagi nih:




echo 'session sekarang:'.Yii::app()->session->get('level_userlogin');

//print_r($_POST);

if(Yii::app()->session->get('level_userlogin') === 1) {

echo 'ini level betul';

else

echo 'level lain';



ini hasilnya:




session sekarang:1

level lain



disitu yang kebaca adalah


level lain

bukan


ini level betul

tidak kebaca, padahal sudah jelas kalo level_userloginnya adalah 1, aneh banget nih?

ada kemungkinan gara-gara ‘level_userlogin’ nya itu adalah ‘1’ bukan 1 integer.

kalau begini mungkin hasilnya akan benar


if(Yii::app()->session->get('level_userlogin') === '1')

wah, terima kasih temen-temen atas bantuannya.

benar2 problem solver nih. :)




echo 'session sekarang:'.Yii::app()->session->get('level_userlogin');

//print_r($_POST);

if(Yii::app()->session->get('level_userlogin') === 1) {

echo 'ini level betul';

else

echo 'level lain';



Kata bu Guru operator perbandingan bisa === atau == tapi katanya "Good programming practice" jangan menggunakan 1 tapi gunakan boolean seperti TRUE | FALSE

Mudah2an bisa membantu

Cheers :)

ikut nimbrung lagi…

perasaan sih ‘1’ itu bukan true atau false, tapi level nya, jadi bisa 1, bisa 2, bisa 3 gitu deh~

Oh iya betul, maklum lagi belajar :)