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,
));

}