Mysql sorguları için Zend PHP Class Değişken tutma

1 Cevap php

Ben (Zend framework kullanarak) bir veritabanından kayıtları almak için tek bir php dosyası kullanan bir flaş uygulama var. Uygulama ilk başladığında veritabanına tüm gelecekteki istekleri kendi değerine göre kayıtları seçmek için bu değişkeni kullanın, böylece ben, bir sınıf değişkeni ayarlamak için php için bir çağrı yapmak. Yani burada sınıf başlar nasıl:

class MyClass
{   

    private $animal = "";

    public function setAnimal($anim) {
         $this->animal = $anim;
         echo($this->animal); //this correctly prints the variable I passed in
    }

Artık sınıfının herhangi bir sonraki erişen bir değeri vardır, çünkü daha sonra, kullanıcı girişi dayalı, ben bu sınıfın farklı bir yöntemle bir arama yapmak, ancak sınıf değişkeni $ hayvan unutulmuş sanki bulunuyor:

public function getAnimals()
    {
        echo('getAnimals: ');
        echo($this->animal); //this prints nothing - as if it doesn't know what "animal" is

        $result = mysql_query("SELECT * FROM animals WHERE animal='$this->animal'"); //and therefore this query doesn't work
        $t = array();

        while($row = mysql_fetch_assoc($result))
        {
            array_push($t, $row);
        }

        return $t;
    }

Yani benim soru nasıl ben bir kez ayarlayabilirsiniz böylece bir PHP sınıfı değişkeni devam alabilirsiniz, ve ben bir uygulamanın ömrü boyunca her zaman erişebilirsiniz?

1 Cevap

Sorunuzu yanlış yorumlama olabilir, ama ilk önce Flash'tan bir PHP komut dosyası için bir çağrı yapmak gibi geliyor, ve daha sonra Flash'tan PHP komut dosyası için ikinci bir çağrı yapma ve belirli bir değişken ayarlamak için bekliyoruz?

Bu durumda ise, o zaman da bir sorundur. PHP vatansız olduğunu. (Yani, URL'yi talep) bir PHP komut dosyası erişmek her zaman, PHP çevre sıfırdan yeniden oluşturulur. Istek yapılır ve PHP betiğin bittikten kısa sürede (web sunucusu konu kapanır yani, ve PHP ortamı kaybolur), çevre tahrip edilmektedir. Eğer ilk istek olarak ayarlamak veya yapılacak bir şey sizin ikinci istek yok edecektir.

Eğer bilgi devam etmek istiyorsanız, oturum veya çerezleri kullanabilirsiniz. Flash'ı kullanarak konum beri, sessions muhtemelen gitmek için en iyi yoldur. Eğer komut dosyası çağırın ilk kez, bir oturum belirteci oluşturmak ve tepki ile geri flaş onu geçmek. Sonraki tüm aramalarda, Flash oturum belirteci vermelidir, ve sen getir / sen $_SESSION İhtiyacınız olan herhangi bir durum değişkenleri saklayabilirsiniz.