• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pokazywanie danych logowania do MySQL przy błędzie połączenia

+1 głos
772 wizyt
pytanie zadane 7 lutego 2023 w SQL, bazy danych przez zbiku25 Gaduła (3,000 p.)

Łączę się z bazą danych przy pomocy następującej funkcji

mysqli_connect($host, $user, $pass, $db_name)

W przypadku gdy z jakiegoś powodu nie mogę połączyć się z bazą wyskakuje komunikat o błędzie i zawiera on dane logowania do bazy.

Czy możecie doradzić jakiś efektywny sposób aby taki komunikat w przypadku błędu się nie pojawiał? Uczę się na języku proceduralnym nie obiektowym.

Pozdrawiam,

2 odpowiedzi

+2 głosów
odpowiedź 7 lutego 2023 przez wizarddos Nałogowiec (28,110 p.)
wybrane 8 lutego 2023 przez zbiku25
 
Najlepsza
Możesz zmienić wyświetlanie wszystkich błędów w pliku konfiguracyjnym PHP (php.ini)

Wystarczy znaleźć linijkę displayErrors (czy jakoś tak) i podmienić on na off

Ewentualnie jeżeli chcesz wyciszyć tylko błędy połączenia - napisz obsługę błędów z użyciem mysqli_connect_errno()

Nie polecam tego robić na serwerze deweloperskim, bo te błędy się przydają. Za to na produkcji jak najbardziej nie powinno się wyświetlać błędów
komentarz 7 lutego 2023 przez zbiku25 Gaduła (3,000 p.)

Dziękuję. 

Napisałem obsługę błędu jak poniżej

public function connect()
			{
				mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
				try
				{
					$conn=mysqli_connect($this->db_host, $this->db_user, $this->db_password, $this->db_name);
					
					if( mysqli_connect_errno!=0)
					{
						throw new Exception(mysqli_connect_errno);
					}
				}
				catch(Exception $e)
				{
					echo "Błąd połączenia";
				}
			}

Zależało mi aby wyświetlił się wyłącznie napis "Błąd połączenia". Oprócz niego wyświetla się jeszcze 

Warning: mysqli_connect(): php_network_getaddresses: getaddrinfo for localost failed: Nieznany host. in C:\xampp\htdocs\akor\classes\class_database.php on line 16

Czy jest możliwość aby ten Warning się nie wyświetlał używając jedynie kodu (bez zmiany php.ini ?

1
komentarz 7 lutego 2023 przez overcq Pasjonat (22,630 p.)

display_errors oraz ini_set()

0 głosów
odpowiedź 7 lutego 2023 przez reaktywny Nałogowiec (46,220 p.)
Chodzi o PHP? Nie pomogę, ale trochę się dziwie że komunikat błędu zawiera te dane. Może jest jakiś debug mode, czy coś podobnego? Generalnie dane dostępowe umieszcza się w zmiennych środowiskowych.
komentarz 7 lutego 2023 przez zbiku25 Gaduła (3,000 p.)
tak PHP, dzięki za odzew
komentarz 7 lutego 2023 przez reaktywny Nałogowiec (46,220 p.)
NIe ma za co, wizarddos podał rozwiązanie na tacy.

Podobne pytania

0 głosów
0 odpowiedzi 330 wizyt
0 głosów
2 odpowiedzi 2,438 wizyt
0 głosów
1 odpowiedź 569 wizyt
pytanie zadane 22 maja 2020 w SQL, bazy danych przez Greeenone Pasjonat (16,100 p.)

93,788 zapytań

142,753 odpowiedzi

323,429 komentarzy

63,393 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...