Od jakiegoś czasu piszę programy w PHP. Skrypt, który przedstawiam poniżej działał prawidłowo w XAMPP-ie 1.73 (zapewne tam było PHP w wersji niższej niż 5.4). Gdy przeszedłem na XAMPP-a 1.82 (gdzie króluje PHP 5.4) przeglądarka wyrzuca mnóstwo błędów przy wczytywaniu pliku file02.php, których wcześniej nie było. Nie chodzi mi o to aby się pozbyć komunikatów lecz o to by skrypt działał prawidłowo.
Plik cat01/config.php:
<?php $serwer="localhost"; $user="root"; $pass=""; $baza="baza01"; ?>
Plik cat01/function.php:
<?php require("config.php"); function polacz() { $mysqli=new mysqli(serwer,user,pass,baza); $mysqli2=$mysqli->errno; if ($mysqli2 === NULL){return "zero";} if ($mysqli2 === 0){return "gut";} if ($mysqli2 !=0){return "pudlo";} } ?>
W pliku function.php docelowo mają się też znaleźć inne funkcje zależne od funkcji połącz. Funkcję tę stworzyłem po to by za każdym razem nei sprawdzać czy udało się połączenie z bazą danych i nie pisać komunikatów błędów na Ekranie.
Plik file02.php
<?php require("cat01/function.php"); $test01=polacz(); //Zapytania if ($test01 != "gut") if ($test01 == "gut") { $query="SELECT * FROM drzewo limit 2"; $result=$mysqli->query($query,MYSQLI_STORE_RESULT); $result2=$result->num_rows; if ($result2 == 0) $mysqli->close();} if ($result2 >=1) //Tutaj później pojawią się instrukcje do obróbki rekordów } ?>
CODE
Notice: Undefined variable: serwer in C:\xampp\htdocs\puppe\cat01\function.php on line 3
Notice: Undefined variable: user in C:\xampp\htdocs\puppe\cat01\function.php on line 4
Notice: Undefined variable: pass in C:\xampp\htdocs\puppe\cat01\function.php on line 5
Notice: Undefined variable: baza in C:\xampp\htdocs\puppe\cat01\function.php on line 6
Notice: Trying to get property of non-object in C:\xampp\htdocs\puppe\file02.php on line 9
Nie udaĹo siÄ..
.
Tak wygląda wynik wykonania skryptu file02.php. Wcześniej było wszystko jak trzeba. W wersji 5.3 PHP miałem wyłączone register_globals i działało. Teraz jak gdyby serwer dostał grzyba i nie łączy się z bazą danych (dane do bazy są podane prawidłowo. w tabeli drzewo znajdują się przykładowe wartości). Nie wiem gdzie jest błąd. Poza tym zależy mi na tym aby wyrzucało błędy w przypadku niepowodzenia połączenia się z bazą danych, zwłaszcza że serwery MySQL są zawodne i czasami nie udaje się nawiązać z nimi połączenia gdy np. są przeciążone.