• 05-05-2014, 14:57:36
    #1
    Arkadaşlar merhaba bir sorum olacak.

    2 Adet fonksiyonum var 1. fonksiyonum yani a fonksiyonu içerisinde veritabanı bağlantısı var.

    2.Fonksiyonum'da ise yani b fonksiyonum'da başka bir kodlama var.

    Haliyle 2.fonksiyon içerisinde 1.fonksiyon'daki veritabanı bağlantısını kullanıp verilere erişemiyorum.

    2 fonksiyonu birbirine nasıl birleştirebilirim ? veya bağlayabilirim.

    Bunlar 1 class'ın içerisinde bu arada.

    global fonksiyonu ile hallettim teşekkürler arkadaşlar.
  • 05-05-2014, 17:19:11
    #2
    BR9 adlı üyeden alıntı: mesajı görüntüle
    Arkadaşlar merhaba bir sorum olacak.

    2 Adet fonksiyonum var 1. fonksiyonum yani a fonksiyonu içerisinde veritabanı bağlantısı var.

    2.Fonksiyonum'da ise yani b fonksiyonum'da başka bir kodlama var.

    Haliyle 2.fonksiyon içerisinde 1.fonksiyon'daki veritabanı bağlantısını kullanıp verilere erişemiyorum.

    2 fonksiyonu birbirine nasıl birleştirebilirim ? veya bağlayabilirim.

    Bunlar 1 class'ın içerisinde bu arada.

    global fonksiyonu ile hallettim teşekkürler arkadaşlar.

    basit ve hızlı bir örnek yazdım, hatalar olabilir test edersiniz.

    define('DB_KEY','__db_resource');
    
    function db_resource() {
    
     if (isset($GLOBALS[DB_KEY]) && is_resource($GLOBALS[DB_KEY])) {
      return $GLOBALS[DB_KEY];
     }
    
     $GLOBALS[DB_KEY] = mysql_connect('localhost', 'user', 'pass');
     if(!$GLOBALS[DB_KEY]) exit(mysql_error());
     if(!mysql_select_db('dbName',$GLOBALS[DB_KEY])) exit(mysql_error());
    
     return $GLOBALS[DB_KEY];
    }
    
    function db_disconnect() {
     if (isset($GLOBALS[DB_KEY]) && is_resource($GLOBALS[DB_KEY])) {
      mysql_close($GLOBALS[DB_KEY]);
      $GLOBALS[DB_KEY] = NULL;
     }
    }
    
    register_shutdown_function('db_disconnect');
    istediğiniz fonksiyon ve class methodu içerisinde

    mysql_query('SELECT bla bla bla',db_resource())
    global yerine kullanabilirsiniz.

    art arda
    $link = db_resource();
    $link = db_resource();
    $link = db_resource();

    yazsanız dahi ilkinde bağlantı açılacak diğer çağrılarda mevcut bağlantıyı döndürecektir. veritabanı bağlantısı kullanmadığınız sayfalarda db_resource fonksiyonunu çalıştırmadığınız için boş yere bağlantı açmamış olursunuz ve php betiği sonladığında otomatik olarak veritabanı bağlantınız varsa kapatılacaktır.
  • 05-05-2014, 17:28:28
    #3
    Üyeliği durduruldu
    function bir () {
          function iki(){
                echo "Çalıştı";
          {
    }
  • 06-05-2014, 00:59:44
    #4
    BR9 adlı üyeden alıntı: mesajı görüntüle
    Arkadaşlar merhaba bir sorum olacak.

    2 Adet fonksiyonum var 1. fonksiyonum yani a fonksiyonu içerisinde veritabanı bağlantısı var.

    2.Fonksiyonum'da ise yani b fonksiyonum'da başka bir kodlama var.

    Haliyle 2.fonksiyon içerisinde 1.fonksiyon'daki veritabanı bağlantısını kullanıp verilere erişemiyorum.

    2 fonksiyonu birbirine nasıl birleştirebilirim ? veya bağlayabilirim.

    Bunlar 1 class'ın içerisinde bu arada.

    global fonksiyonu ile hallettim teşekkürler arkadaşlar.
    bunlar bir class'ın içersinde demişsiniz yanlış okumadıysam;

    dolayısıyla şöyle bir kodlama olması gerekiyor.
    class ClassName{
    
        function Function1(){
            bla bla bla...
        }
        function Function2(){
            bla bla bla...
        }
    }
    örnek üsteki gibi bir class oluşturdum.
    fonksiyon1 de bir bağlantı koduna ulaşmak istiyorsun sanırım.
    onuda $this->degisken ile halledebilirsin.

    class ClassName{
        private $degisken; //private, public,static artık ne lazımsa ona göre kullan
        function Function1(){
            bla bla bla...
            $this->degisken = $ulasmakistediginbaglantiburadaolsun;
        }
        function Function2(){
            bla bla bla...
            return $this->degisken;
        }
    }
    $oop = new ClassName();
    $oop->Function1();
    print_r($oop->Function2());
    şeklinde kullanırsan Function1 de atadığun $ulasmakistediginbaglantiburadaolsun kısmını ekrana yazdırırsın.