PHP – MySQL : Dynamic Update

Pada umumnya syntax update pada SQL adalah sebagai berikut :

“Update Table Set Field1 = Value1, Field2 = Value2 ….. WHERE Field1 = Value1″

Bayangkan jika kita mendevelop aplikasi website tidak menggunakan framework atau bahkan CMS ? tentu akan memakan banyak baris yang kadang pusing untuk dibaca, berikut merupakan fungsi yang bisa digunakan untuk meringkas fungsi UPDATE.

function arrUpdate($arrField, $table, $arrWhere){
$result = "";
$result = "UPDATE ".$table." SET ";
$nField = count($arrField);
$nWhere = count($arrWhere);

if ( $nField > 1){
foreach ($arrField as $key=>$val){ $result .= $key."='".trim($val)."', "; }
}else{
foreach ($arrField as $key=>$val){ $result .= $key."='".trim($val)."' "; }
}

if (substr(trim($result), -1)==','){
$r[0] = substr($result,0,strlen(trim($result))-1)." WHERE ";
}else{
if ($nWhere > 0){ $r[0] = $result. " WHERE ";}
else{$r[0] = $result;}
}

$result = "";

if ( $nWhere > 1){
foreach ($arrWhere as $key=>$val){ $result .= " ". $key."='".trim($val)."' AND "; }
}else{
foreach ($arrWhere as $key=>$val){ $result .= $key."='".trim($val)."'"; }
}

if (substr(trim($result), -3)=='AND'){
$r[1] = substr($result,0,strlen(trim($result))-3);
}else{
$r[1] = $result;
}

return $r[0].$r[1];

}

untuk menggunakannya :

$data = array (
'INVEST_NO' => $INVEST_NO
, 'INVEST_IDX' => $INVEST_IDX);
$where = array ("INVEST_NO" =>$INVEST_NO);
// arrUpdate ([data_update],[table_name],[condition]
$q = arrUpdate($data, 'investment',$where);

Fungsi ini memang masih menggunakan 1 operator saja dalam artian hanya bisa mengeksekusi WHERE condition ‘AND’.

Fork me on GitHub

Comments

comments

Powered by Facebook Comments