2014-07-03 13 views
9

Pracuję nad projektem @ home i korzystam z WAMP do programowania. Obecnie plik php.ini posiada następujące linie ustawione tak:Wyłączanie ostrzeżeń o wycofaniu w pliku PHP.ini WAMP

error_reporting = E_ALL & ~E_DEPRECATED 
display_errors = On 

Miałem nadzieję w ten sposób go uniemożliwiłoby ostrzeżenia Wycofanie z pokazywaniem. Jednak tak nie jest. Czy istnieje sposób, w jaki mogę dostosować error_reporting, aby ignorować przestarzałe ostrzeżenia.

Wyjście Dostaję obecnie:

Screen of the problem

+2

[** Nie używaj funkcji 'mysql_ *' w nowym kodzie **] (http://bit.ly/phpmsql). Nie są już utrzymywane [i są oficjalnie przestarzałe] (http://j.mp/XqV7Lp). Zobacz [** czerwone pudełko **] (http://j.mp/Te9zIL)? Dowiedz się więcej o [* przygotowanych wyciągach *] (http://j.mp/T9hLWi) i użyj [PDO] (http://php.net/pdo) lub [MySQLi] (http://php.net/ mysqli) - [ten artykuł] (http://j.mp/QEx8IB) pomoże ci zdecydować, który. (Również, możliwe duplikaty [Wyłącz nieaktualne błędy php 5.3] (http://stackoverflow.com/questions/2803772/turn-off-deprecated-errors-php-5-3).) – esqew

+2

Czy rzeczywiście masz '& 'w twoim php.ini? –

+1

Chociaż kod jest konwertowana do MySQLi/PDO, E_DEPRECATED błędy mogą być tłumione przez ustawienie error_reporting w php.ini wykluczyć E_DEPRECATED: 'error_reporting = E_ALL^​​E_DEPRECATED' –

Odpowiedz

1

Jeśli chcesz wyświetlić wszystkie błędy oprócz przestarzałe, a następnie użyć tego ustawienia:

error_reporting = E_ALL^E_DEPRECATED 

EDIT: Można również utworzyć niestandardowy moduł obsługi błędów, który ukrywa tylko mysql_ ostrzeżenia o wycofaniu:

set_error_handler(function($errno, $errstr) { 
    return strpos($errstr, 'mysql_') === 0; 
}, E_DEPRECATED); 

Należy jednak pamiętać, że funkcje mysql_ są przestarzałe. Zamiast więc próbować ukryć błędy, rozważ przełączenie na mysqli lub PDO.

+0

który nie działa dla mnie @Gergo – Javacadabra

+0

Czy zrestartowałeś serwer? –

+0

Tak, zrobiłem. Ale to nie działa 'error_reporting = E_ALL i ~ E_DEPRECATED' jest teraz w' php.ini' – Javacadabra

20

Można użyć tej funkcji:

error_reporting(E_ALL^E_DEPRECATED); 

http://www.php.net/manual/en/function.error-reporting.php

Albo użyj "@" przed nazwą funkcji operatora.

@mysql_connect(); 
+1

Dzięki, używając PHP 5.5.9 na Ubuntu error_reporting = E_ALL & ~ E_DEPRECATED & ~ E_STRICT Brak efektu .... ale "@mysql_connect();" załatw sobie – molokoloco

+0

kocham tego operatora @ !!!! –

6

W pliku php.ini zmienić następujące .. (uwaga wamp ma 2 różne pliki php.ini więc dokonać zmian na obu)

z tego

error_reporting = E_ALL 

do tego

error_reporting = E_ALL & ~E_DEPRECATED 
0

Aby ukryć błędy pHP na serwerze WAMP, proszę otworzyć php.ini plik i znaleźć następujący wiersz kodu

error_reporting = E_ALL 

i zastąpić go

error_reporting = E_ALL & ~E_NOTICE 

wszystkie błędy będą ukryj/wyłącz.

1

Ustaw swój raport o błędzie do

error_reporting (E_ERROR | E_WARNING | E_PARSE | e_notice);

na swojej stronie php.

3

Miałem ten sam problem. Okazało się jednak, że edytowałem nieprawidłowy plik php.ini.W moim przypadku prawidłowa była

C:\wamp64\bin\php\php5.6.25\phpForApache.ini

iw tym pliku zmieniłem ten wiersz na:

error_reporting = E_ALL & ~E_DEPRECATED.

Nie ma znaczenia, co zmieniłem w tym "oczywistym" pliku php.ini.

Powiązane problemy