Selasa, 11 November 2014

Call Procedure MySQL from Yii Framework

Structure Table


#NameTypeCollationAttributesNullDefaultExtraAction
1varchar(3)latin1_swedish_ciNoNoneChange ChangeDrop Drop
2varchar(50)latin1_swedish_ciYesNULLChange ChangeDrop Drop

Create Procedure MySQL
DELIMITER //
CREATE PROCEDURE insKategori(in nama_kategori varchar(50))
BEGIN
declare nomor int;
declare kode_kategori varchar(3);
set nomor = (select count(*)+1 from kategori);
set kode_kategori = (select right(concat('00',convert(nomor, char(3))),3));
insert into KATEGORI values(kode_kategori, nama_kategori);
END;
//

DELIMITER ;

CategoryController
public function actionCreate()
{
$model=new Kategori;

// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);

if(isset($_POST['Kategori']))
{
                    //$model->attributes=$_POST['Kategori'];
                    if ($_POST['Kategori']['NAMA_KATEGORI']==null)
                    {
                        if($model->save())
                        $this->redirect(array('view','id'=>$model->KODE_KATEGORI));
                    }
                    else
                    {
                    $command = Yii::app()->db->createCommand("CALL insKategori(:nama_kategori)");
                    $command->bindParam(":nama_kategori", $_POST['Kategori']['NAMA_KATEGORI'], PDO::PARAM_STR);
                    $command->execute();
                    }
}
             
$this->render('create',array(
'model'=>$model,
));

}

Cara Hosting Yii Framework pada Masterweb


Langkah-langkahnya yaitu:

1. Jika folder framework terpisah dari folder project, maka upload folder framework sejajar dengan root (jika di masterweb sejajar dengan folder www). Jika folder framework sudah berada di dalam project, upload seluruh isi project ke dalam folder www.

2. Ubah file permission folder asset dan protected/runtime menjadi 777

3. Buat file php.ini untuk domain anda di menu domain/subdomain

4. Hapus tanda (;) pdo.so dan pdo_mysql.so