Bir dosyaya yazmak için PHP alınamıyor

1 Cevap

Aşağıda basit bir veritabanı sınıfı, iyi bir sınıfın bir parçası, benim soru ile ilgili parçalar hariç her şeyi dışarı çıkardı.

Temelde bana da sonra tüm aldıkları zaman bir sayfa yük koştu sorgular, onlar olduğu için, toplam sayım, ve koştu gerçek SQL ile bir dosya oluşturmak için izin verir. Bu çok güzel ama ben sorun yaşıyorum. Sana dosyaya yazılmalıdır değer olan $ sss değerini ekrana yazdırmak aşağıda görebilirsiniz, bu dosyaya yazmak için alınamıyor. PHP Ben her şeyi göstermek için ayarlanmış hata raporlama var ve ben hiçbir yazma hataları ya da bir şey almak, o sadece belki ben yanlış klasörde dosya olabilir ama emin değilim, dosyaya yazmaz.

Peki günlük dosyasına bir dosya yolunu ayarlamak için ve aynı zamanda yazmaya yapmak için iyi bir yol olurdu? Şimdi dosyayı bulamıyor EĞER, ben hata çeşit görmelisiniz?

<?PHP
class Database
{
    public $debug = true;
    public $query_count = 0;
    public $debug_file = "debug.sql";

    public function query($sql){
        //start timer stuff for debug logger
        list($usec, $sec) = explode(" ",microtime());
        $time_start  = ((float)$usec + (float)$sec);

        //run mysql query
        $result = mysql_query($sql);


        ///debug    
        list($usec, $sec) = explode(" ",microtime());
        $time_end  =  ((float)$usec + (float)$sec);
        $time = $time_end - $time_start;
        if($this->debug){
            $this->query_count ++;
            $f = fopen($this->debug_file, "a");
            $sss = "# ".$this->query_count."\n ".$time." sec \n\n".$sql."\n#-------------------------------------------------------------------------\n\n";

            // I print to screen just for test to see what should be wrriten to the file
            echo $sss;

            fputs($f, $sss, strlen($sss));
            fclose($f);
        }
        //end debug
    }
}
?>

1 Cevap

Her şeyden önce, ben (http://php.net/manual/en/function.file-put-contents.php) file_put_contents kullanmak, aslında tek bir bütün bu çağrıları demetleri ve hataları önlemek yardımcı olabilir.

Echo ifadesi gerçekten çalışma ise, ben php günlük dosyasına yazılıyor herhangi bir hata için kontrol ve çift php.ini ayarlarınızı kontrol ve uyarıları oturum yapacak.

Ayrıca, ... () çağrısı (bunun yanlış olmamalıdır) belki onun başarısızlığının Fopen dönüş değerini kontrol?