06 Dec

Mysql de triger yönetimi

MySQL de eklemiş olduğunuz trigerı görmek için:

1
2
3
 SELECT * FROM Information_Schema.Trigger
 WHERE Trigger_schema = 'veritabanı_ismi' AND
       Trigger_name = 'trigger_ismi';

Bir veritabanına elediğiniz tüm trigerları görmek için :

1
2
 SELECT * FROM Information_Schema.Trigger
 WHERE Trigger_schema = 'veritabanı_ismi'

Bir tabloya eklediğiniz trigerları görmek için :

1
2
3
SELECT * FROM Information_Schema.Trigger
 WHERE Trigger_schema = 'veritabanı_ismi' AND
       Event_object_table = 'tablo_ismi';

Son olarak da bir tabloya eklediğiniz trigerları da şu komut ile silebilirsiniz :

1
 DROP TRIGGER tablo_ismi.trigger_ismi
06 Dec

PHP de hata fırlatmak ( Exception kullanımı )

Php nin try-catch kullanımını anlatırken phpnin bu yapı için çok yeterli olmadığından bahsetmiştik. Hatanın yakalanabilmesi için bu hatayı fırlatabilen ( Exception ) bir mekanizma gereklidir. Bu da PHP5 ile gelen yeni özellilerde mevcut.
Tabi sadece PHP ekibine mecbur değilsiniz bu hata mekanizması için. Kendiniz de hata fırlatma mekanizması oluşturabilirsiniz.

Bu anlatım karmaşasını örnek ile sadeleştirelim :

1
2
3
4
$dosya=fopen('dosya','r');
$veri=fread($dosya,1024);
echo $veri;
fclose($dosya);

Örneğimiz çok basit, dosyayı açıp okuyor ve veriyi ekrana yazdırıyoruz. Bunu klasik hata yönetim sistemi ile değiştirelim.

1
2
3
4
5
6
7
if($dosya=fopen('dosya','r')){
    $veri=fread($dosya,1024);
    echo $veri;
    fclose($dosya)
}else {
   echo 'dosyayı açamadı';
}

Evet, gayet basit ve normal bir kullanım. Şimdi bunu nasıl try-catch uyumlu yapabileceğimizi göreceğiz, sonra buna neden gerek duyduğumuzu anlatmaya çalışacağım.

1
2
3
4
5
6
7
8
9
10
try {
  if(!$dosya=fopen('dosya','r')){
     throw new Exception('Dosya açılamadı');
  }
  $veri=fread($dosya,1024);
  echo $veri;
  fclose($dosya);
}catch(Exception $e){
   echo $e->getMessage();
}

Neden böyle birşeye ihtiyaç duyuyoruz . Bundan önce yukarıdaki kodu yorumlayalım :

Eğer dosya açılır ise okuduğumuz veriyi ekrana yazdırıyoruz. Eğer dosya açmada problem olursa hata fırlatma mekanizmasi ( throw ) ile hata fırlatıyoruz. Bundan sonrada catch bloğumuzda ( throw satırından sonraki satır çalışmaz ve burdan sonra catch bloğu çalışır ) hatayı yakalayarak yapmamız gerekeni yapıyoruz ( burada sadece hatayı ekrana yazdırıyoruz ).

Bu neden gerekli ? Öncelikle hatanın yönetilebilmesi daha kolay , kodun okunabilirliğini arttırır ve en önemlisi daha performanslı çalışır.
Yukarıdaki kodu örnek göstererek try-catch hata yakalama mekanizmasının avantajından dem vurmak mümkün değil tabiki. Bu mekanizmanın kullanımını kavradığınızda ve kullandığınızda daha net canlanacaktır zihninizde.