Połączenie z bazą danych MySQL w innym katalogu

0

Witam,
z bazą danych łączę się przez plik o nazwie sql.php. Umieszczony on jest w w katalogu inc/sql.php. Kod jest nie ważny, działa jak zawsze działało. Problem mam taki. Gdy utworzę jeszcze jeden katalog np. o nazwie serwer i napiszę w nim jakiś tam skrypt z wykorzystaniem bazy danych(nie ważne jaki). I chcę do tego kodu dołączyć plik z połączeniem bazy danych poleceniem:

include 'inc/sql.php';

pojawiają się błędy typu:

Warning: include(inc/sql.php): failed to open stream: No such file or directory in C:\WebServ\httpd\strona\serwer\skrypt.php on line 3

Warning: include(): Failed opening 'inc/sql.php' for inclusion (include_path='.;C:\php\pear') in C:\WebServ\httpd\strona\serwer\skrypt.php on line 3

Pomaga jeśli do katalogu o nazwie serwer dodam plik sql.php i połączę się w ten sposób

include 'sql.php';

Dlaczego tak jest i jak sobie z tym poradzić? Czy muszę tworzyć za każdym razem nowy plik z połączeniem do bazy danych? Pomoże ktoś?

2

poczytaj o sciezkach relatywnych i absolutnych.

to

include 'inc/sql.php';

odwola sie do pliku ktory znajduje sie w folderze inc, ale folder MUSI byc w tym samym katalogu.

a to

include '../inc/sql.php';

odwola sie do pliku sql.php ktory znajduje sie w fodlerze inc, ale ten folder znajduje sie w katalogu wyzej.

0

Ok, dzięki. Kolejna cenna rada.

0

A jeszcze mam takie pytanie. Jeśli chcę w wyższym katalogu dodać include z niższego to jak to mam zrobić?

http://localhost/serwer/tab1/tab2/strona.php

W ten sposób próbuję:

include '../inc/sql.php';

oraz include '../../inc/sql.php';


Odnosi mnie do pliku includowanego, że jest źle. Co zrobić?
0

tak jj odwolywales sie na poczatku bez znaku backslasha. albo poczytaj jak zalecalem o sciezkach relatywbych i absolutnych

0

Czytam właśnie w książce pt. **"PHP i MySQL. Tworzenie aplikacji http://localhost/strona/admin/notatki/notatki.phpe nic z tego nie wynika. Może podam przykład. Robię panel notatek admina panelu administracyjnym. W panelu mam zakładkę "Notatki admina". Po kliknięciu w nią przenosi mnie na stronę: http://localhost/strona/admin/notatki/notatki.php
a na niej pojawiają się takie błędy:

Warning: include(../inc/sql.php): failed to open stream: No such file or directory in C:\WebServ\httpd\strona4\admin\if_admin.php on line 2

Warning: include(): Failed opening '../inc/sql.php' for inclusion (include_path='.;C:\php\pear') in C:\WebServ\httpd\strona4\admin\if_admin.php on line 2

Fatal error: Call to a member function prepare() on a non-object in C:\WebServ\httpd\strona4\admin\if_admin.php on line 4

Że niby połączenie w pliku if_admin.php jest złe. Utworzyłem ten plik w celu sprawdzenia czy użytkownik ma dostęp do panelu administracyjnego. To jego krótka zawartość:

<?php
		include '../inc/sql.php';
		//pobieranie czy admin
		$pobierz_czy_adm = $db->prepare("SELECT `admin` FROM `gracze` WHERE `nick` = :nick_admin");
		$pobierz_czy_adm->bindValue(":nick_admin", $_SESSION['nick'], PDO::PARAM_STR);
		 
		if(!$pobierz_czy_adm->execute()){
			throw new Exception("Błąd zapytania");
		}
		else{
			$data_admin = $pobierz_czy_adm->fetch();
			$wynik_admin = $data_admin['admin'];
		 
		}			
?>

Wie ktoś o co chodzi z tą ścieżką?

1 użytkowników online, w tym zalogowanych: 0, gości: 1