PHP ile Tek Satırda Update

Herkese merhabalar.Frameworkler ile çalışırken veritabanına veri eklemenin ve güncellemenin çok kolay olduğunu farkettim.Formların name alanlarını veritabanının sütun isimleriyle aynı yaptığınız zaman tek satrıda insert ve update işlemi yapabiliyoruz.Uzun uzun UPDATE sorguları yazmak hem hataya çok açık hemde uğraşması zor oluyor.Bende framework olmadan bunu yapmamızı sağlayan bi fonksiyon yazdım sizlerlede paylaşmak istedim.

function update($dbh,$table,$updateArray,$where)  {

    $totalKeys = "";
    foreach ($updateArray as $key => $value) {
        $totalKeys .= $key . "=" . ':'.$key .",";
    }
    $totalKeys = substr($totalKeys,0, -1);

    $updateSQL = sprintf("UPDATE  %s  SET %s WHERE %s",$table,$totalKeys,$where);

    try {
        return $dbh->prepare($updateSQL)->execute($updateArray);
    } catch(PDOException $exception) {
        return $exception;
        exit;
    }

}

Örnek Kullanımı

Veritabanınızdaki sütun isimleri ile formlardaki name değerlerini aynı yaptığınz zaman size post arrayı geri dönmekte.Bizde bu post arrayını fonksiyona gönderip update etmesini sağlıyruz.

$stmt = update($dbh,"users",$_POST,"id = :id");

Ben test için postları kontrol etmedim ancak siz mutlaka kontrol edin… İyi çalışmalar