Ahmeti Simple Mysql Record Class (Php)

1
Bu sayfa 135 kez görüntülendi.

Merhaba Arkadşalar,

Bildiğiniz gibi bazı spesifik formlarda çok fazla alan kullanmamız gerekiyor. Tabi bunları veri tabanına kaydetmek için de yok tek tırnağı, yok çift tırnağı falan derken sorgular oldukça uzun oluyor. Basit ve bu tür durumlarda kullanmak için basit bir class yazdım. Bu tür konularda oldukça faydalı olacağını düşünüyorum.

1. Veri Tabanına Veri Ekleme (Insert Into)

<?php
	$deneme=new ahmetiSimpleMysqlRecordClass();
	$deneme->setFieldandValue("user_name","Ahmet");
	$deneme->setFieldandValue("user_full_name",'Ahmet İmamoğlu');
	$deneme->setTableName('user');
	$sonuc=$deneme->sqlInsert();

	if ($sonuc===true){
		echo 'OK';
	}else{
		echo $sonuc; // Hata mesajı
	}
?>

2. Veri Tabanındaki Veriyi Güncelleme (Update)

<?php
	$deneme=new ahmetiSimpleMysqlRecordClass();
	$deneme->setFieldandValue("user_name","Ahmet");
	$deneme->setFieldandValue("user_full_name",'Ahmet İmamoğlu');
	$deneme->setTableName('user');
	$deneme->setSqlWhere('user_id=13'); // Tüm satıları güncellemek için; $deneme->setSqlWhere('*');
	$sonuc=$deneme->sqlUpdate();

	if ($sonuc===true){
		echo 'OK';
	}else{
		echo $sonuc; // Hata mesajı
	}
?>

3. Veri Tabanındaki Veriyi Silme (Delete)

<?php
	$deneme=new ahmetiSimpleMysqlRecordClass();
	$deneme->setTableName('user');
	$deneme->setSqlWhere('user_id=13'); // Tüm satıları silmek için; $deneme->setSqlWhere('*');
	$sonuc=$deneme->sqlDelete();

	if ($sonuc===true){
		echo 'OK';
	}else{
		echo $sonuc; // Hata mesajı
	}
?>

Class

<?php
class ahmetiSimpleMysqlRecordClass{

    /*
    ************************************************************************

        INSERT

        $deneme=new ahmetiSimpleMysqlRecordClass();
        $deneme->setFieldandValue("user_name","Ahmet");
        $deneme->setFieldandValue("user_full_name",'Ahmet İmamoğlu');
        $deneme->setTableName('user');
        $sonuc=$deneme->sqlInsert();

        if ($sonuc===true){
            echo 'OK';
        }else{
            echo $sonuc; // Hata mesajı
        }

    ************************************************************************

        UPDATE

        $deneme=new ahmetiSimpleMysqlRecordClass();
        $deneme->setFieldandValue("user_name","Ahmet");
        $deneme->setFieldandValue("user_full_name",'Ahmet İmamoğlu');
        $deneme->setTableName('user');
        $deneme->setSqlWhere('user_id=13'); // Tüm satıları güncellemek için; $deneme->setSqlWhere('*');
        $sonuc=$deneme->sqlUpdate();

        if ($sonuc===true){
            echo 'OK';
        }else{
            echo $sonuc; // Hata mesajı
        }

    ************************************************************************

        DELETE

        $deneme=new ahmetiSimpleMysqlRecordClass();
        $deneme->setTableName('user');
        $deneme->setSqlWhere('user_id=13'); // Tüm satıları silmek için; $deneme->setSqlWhere('*');
        $sonuc=$deneme->sqlDelete();

        if ($sonuc===true){
            echo 'OK';
        }else{
            echo $sonuc; // Hata mesajı
        }

    ************************************************************************
    */

    public $sqlPreArray=array();
    public $tableName=null;
    public $sqlWhere=null;

    function __construct()
    {
    }

    public function setTableName($table_name)
    {
        $this->tableName=$table_name;
    }

    public function setSqlWhere($sql_where)
    {
        $this->sqlWhere=$sql_where;
    }

    public function setFieldandValue($field,$value){
        $this->sqlPreArray[$field]=$value;
    }

    public function sqlInsert(){

        if (empty($this->tableName)){
            return 'Tablo adını belirtmediniz.';
        }elseif(empty($this->sqlPreArray)){
            return 'Alan adlarını ve değerleri boş bıraktınız.';
        }else{
            // Insert Into
            $fieldImplode=implode(",",array_keys($this->sqlPreArray)); 
            $valueImplode=implode("','",$this->sqlPreArray);

            $sqlReturn="INSERT INTO {$this->tableName} ($fieldImplode) values ('$valueImplode')";

            if (mysql_query($sqlReturn)){
                return true;
            }else{
                return 'Sql sorgusunda bir hata oluştu.';
            }
        }
    }

    public function sqlUpdate(){

        if (empty($this->tableName)){
            return 'Tablo adını belirtmediniz.';
        }elseif(empty($this->sqlPreArray)){
            return 'Alan adlarını ve değerleri boş bıraktınız.';
        }else{
            // Update
            $implodeField=null;
            foreach($this->sqlPreArray as $key=> $value){

                if ($implodeField != null) {$implodeField.=',';}
                $implodeField.=$key."='".$value."'";
            }

            if (empty($this->sqlWhere)){
                return 'Tablodaki tüm satırları değiştirmek için "$degisken->setSqlWhere(\'*\')" kullanmalısınız.';
            }elseif($this->sqlWhere=='*'){
                // Devam...
            }else{
                $implodeField.='WHERE '.$this->sqlWhere;
            }

            $sqlReturn="UPDATE {$this->tableName} SET $implodeField ";

            if (mysql_query($sqlReturn)){
                return true;
            }else{
                return 'Sql sorgusunda bir hata oluştu.';
            }
        }
    }

    public function sqlDelete(){

        if (empty($this->tableName)){
            return 'Tablo adını belirtmediniz.';
        }else{
            // Delete

            $addWhere='';
            if (empty($this->sqlWhere)){
                return 'Tablodaki tüm satırları silmek için "$degisken->setSqlWhere(\'*\')" kullanmalısınız.';
            }elseif($this->sqlWhere=='*'){
                // Devam...
            }else{
                $addWhere.='WHERE '.$this->sqlWhere;
            }

            $sqlReturn="DELETE FROM {$this->tableName} $addWhere ";

            if (mysql_query($sqlReturn)){
                return true;
            }else{
                return false;
            }
        }
    }
}
?>

Bu sayfa 135 kez görüntülendi.

1 YORUM

  1. Bu Simple Mysql Record Class çalışmanızı mysqli olarak kullansanız çok daha kullanışlı olacağı düşüncesindeyim. Emeğiniz için teşekkürler.

CEVAP VER

Please enter your comment!
Please enter your name here

Yorum onaylama sistemi etkin; yorumunuzun yayınlanması biraz zaman alabilir.