Hata Düzeyleri ve Hata hangi on line?

4 Cevap php

Ben üstündeki diğer komut dosyalarını içeren bir PHP komut dosyası vieworder.php var.

<?php
include "../includes/config.php";
include "../includes/session.php";
include "../includes/functions.php";
//...
?>

Ben bu PHP komut dosyası bir hata alıyorum. Bana bunu söyler:

Warning: mysql_num_rows(): supplied argument ... in vieworder.php on line 185

Ben vieworder.php script 185 hattına sadece başvurmak gerekir mi yoksa hesaba dahil komut almak gerekiyor? Ben sonuncusunu tahmin ediyorum?

Ayrıca "Uyarı" dediğinde - ben hemen hemen sayabilirsiniz? Ya da bu ben çok ilgili olması gereken bir şeydir?

Ben bu hata gibi benim için diğer hataları neden olur fark:

Warning: Division by zero in ... vieworder.php on line 340

0 satır döndürüldü, çünkü ben onun tahmin ediyorum.

Özür dileriz, bu dağınık soru için ama çaylak olduğumu ve işler birbiriyle ilişkilidir.

Update

Yani herkes bu görebilirsiniz:

Vieworder.php içinde mysql_num_rows ilk oluşumu () hattı 235 olduğunu. Hattı 185 üzerinde boş bir çizgi vardır ve üstüne bundan önce tüm yolu sadece 1 mysql_query var?!

Update 2

Ben aslında başka bir soru bu koyacağız.

4 Cevap

A supplied argument is not a valid MySQL result resource, genellikle herhangi bir nedenle ve mysql_query returned a false yerine MySQL kaynak için başarısız bir önceki MySQL sorgu neden olur.

Yani o MySQL kaynak ile bir şey yapmadan önce (mysql_error and mysql_errno bakınız) sorgu başarılı olup olmadığını kontrol etmek isteyebilirsiniz.

Warning: mysql_num_rows(): supplied argument ... in vieworder.php on line 185

Sen dahil dosyaları herhangi, vieworder.php hattı 185 civarında hata bakmak gerektiği anlamına gelir.

Uyarılar ihmal edilebilir, ama bunların bir nedeni var demektir, nadiren iyi bir fikirdir.

Eğer alıyorsanız hatası:

Warning: mysql_num_rows(): supplied argument ... in vieworder.php on line 185

aslında çok özeldir. Dikkate başka bir şey almak gerekmez. Eğer kontrol ederseniz vieworder.php, çizgi 185 kodu ile ilgili bir sorun var. mysql_num_rows() geçerli değil, ve çalıştırmak olurken, sen geçirilmeden argümanlardan biri olası kötü sonuç almak için gidiyoruz, bu yüzden içine bakmak gerekir.

Kadar ilk sorunu temizleyerek olası sorunlar net uzağa aşağı de olacak.

Also when it says "Warning" - can I pretty much ignore it? Or is this something I should be very concerned with?

Sürece "hata" her türlü olsun, "hata", "uyarı", hatta "haber" olması, bunu görmezden sınırlandırmak değil:

  • if you get some kind of "error", it can mean you have a more serious error somewhere else
    • Örneğin, size gönderme konum ilk uyarı SQL sorgusu başarısız anlamına gelebilir
  • her "hata" performans / hız bazı maliyeti vardır

Eğer yapabilirseniz, her zaman E_ALL raporlama seviyesini kullanarak geliştirmek gerekir; ve bunları görmek yardımcı olmak için hataları gösterir. Php.ini üzerinden yapılandırılabilir:

error_reporting = E_ALL
display_errors = On
html_errors = On

On the other side, on your production environment, you sould never display errors ; but you should log them to a file (and check that file sometimes). In your php.ini file :

display_errors = Off

; Besides displaying errors, PHP can also log errors to locations such as a
; server-specific log, STDERR, or a location specified by the error_log
; directive found below. While errors should not be displayed on productions
; servers they should still be monitored and logging is a great way to do that.
; Default Value: Off
; Development Value: On
; Production Value: On
; http://php.net/log-errors
log_errors = On

; Log errors to specified file. PHP's default behavior is to leave this value
; empty.
; http://php.net/error-log
; Example:
error_log = php_errors.log

Bunlardan bazıları, btw ini_set ile zamanında yapılandırılabilir.