Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z require
Forum PHP.pl > Forum > PHP
mlynar
plik baza.php5
  1. <?php
  2. function baza()
  3. {
  4. @ $db = new mysqli('localhost', 'uzytkownik', 'haslo', 'baza');
  5. if (mysqli_connect_errno())
  6. {
  7.  echo 'Błąd: Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
  8.  exit;
  9. }
  10. }
  11. ?>


plik dodaj.php5
  1. <?php
  2. $kat=$_POST['kat'];
  3.  
  4. require_once('baza.php5');
  5. baza();  
  6.  
  7.  
  8. $pytanie="insert into kategorie values ('".$kat."')"; 
  9. $wyniki = $db->query($pytanie);
  10. if ($wyniki)
  11. echo 'Kategoria dodana</br>'; 
  12.  
  13.  
  14.  
  15. ?>


plik baza.php5 to jak widac polaczenie z baza danych i wyswietlenie bledu jezeli polaczenie nie nastapi. Problem w tym ze jesli wywoluje go z funkcji to funkcja nie dzala, lecz jesli kod funkcji wkleje zamiast
  1. <?php
  2. require_once('baza.php5');
  3. baza();
  4. ?>
wszystko chodzi jak nalezy. Pytanie brzmi gdzie jest haczyk?

// zamiast [code] uzyj [php] -- dr_bonzo
batman
Wydaje mi się (nie sprawdzałem u siebie), że zmienna $db jest dostępna tylko w ciele funkcji, a nie poza nią. Możesz zadeklarować zmienną $db przed funkcją i odwołać się do niej w funkcji za pomocą global lub zrobić takie coś:

  1. <?php
  2. function baza() {
  3. $db1 = new mysqli('localhost', 'uzytkownik', 'haslo', 'baza');
  4. if (mysqli_connect_errno()) {
  5.  echo 'Błąd: Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
  6.  exit;
  7. }
  8. return $db1;
  9. }
  10.  
  11. $db = baza();
  12. ?>
piczu
zasieg zmiennych
variables.scope" title="Zobacz w manualu php" target="_manual
mlynar
Wielkie dzieki smile.gif wszystko dziala smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.