Połączenie z bazą danych MySql

0
<?php
class DBController {
	private $host = "localhost";
	private $user = "root";
	private $password = "test";
	private $database = "blog_samples";
	private $conn;
	
	function __construct() {
		$this->conn = $this->connectDB();
	}
	
	function connectDB() {
		$conn = mysqli_connect($this->host,$this->user,$this->password,$this->database);
		return $conn;
	}
}

Jak sprawdzić czy to ma połączenie ? Czym różni się $conn = mysqli_connect($this->host,$this->user,$this->password,$this->database); od
$link = mysqli_connect("serwer76767.home.pl","trzy","tamiza", "trzecia"); Czy to jest to samo i tak samo podaję w takiehj samej kolejności parametry mysqli_connect()?

2

5 lat na forum... sorry moze i wyrwe za to jakiegos bana, ale prosze zlituj sie i zacznij brac tabletki przepisane przez lekarza. Ciagle pytasz o te same 3,14rdoly. wez sie czlowieku ogarnij i wydaj chociazby te 50zl i zrob dowolny kurs php z udemy, albo nawet hindusa z yt posluchaj.

1
adamon napisał(a):

Jak sprawdzić czy to ma połączenie ?

Google "php mysqli check if connected", pierwszy link w google: https://stackoverflow.com/questions/16319306/how-to-check-whether-mysqli-connection-is-open-before-closing-it

Czym różni się $conn = mysqli_connect($this->host,$this->user,$this->password,$this->database); od
$link = mysqli_connect("serwer76767.home.pl","trzy","tamiza", "trzecia"); Czy to jest to samo i tak samo podaję w takiehj samej kolejności parametry mysqli_connect()?

Google "php mysql vs mysqli", pierwszy link w google: https://phppot.com/php/mysql-vs-mysqli-in-php/

0

Kod wpada w warunek sprawdzający czy zmienna $conn się neguje. A neguje się bo nigdzie jej nie definiujesz, a więc nie istnieje. Z Twojego kodu można wywnioskować, że próbowałeś utworzyć klasę nawiązującą połączenie z bazą, jednak kod Ci się nieco rozjechał. Pierwsze co, to:

wrzuć elementy klasy do jej środka ;)
przypisz polu $conn w klasie modyfikator public by później móc odwołać się do połączenia z bazą poza obiektem:

<?php
class DBController {
	private $host = "serwer65756.home.pl";
	private $user = "9898988_pierwsza";
	private $password = "tamiza";
	private $database = "876365673_pierwsza";
	public $conn; // publiczne pole; wypełniane jest w konstruktorze czyli przy tworzeniu obiektu klasy...

 	public function __construct() {
		$this->conn = $this->connectDB(); //...o tu ;)
	}

	private function connectDB() { // a ta metoda może być na ten moment prywatna skoro jej nie "wołasz" na zewnątrz
		$conn = mysqli_connect($this->host,$this->user,$this->password,$this->database);
		return $conn;
	}
}

Przed wspomnianym ifem utwórz sobie obiekt i tym samym nawiąż połączenie z bazą:

$db = new DBController();
$conn = $db->conn;
if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
    echo "Connected successfully";

Mam odpowiedz ze strony skryptu.
Połączenie nieudane.

W jaki sposób to uruchomić ?

0
private $host = "serwer65756.home.pl";
private $user = "9898988_pierwsza";
private $password = "tamiza";
private $database = "876365673_pierwsza";

Ja się nie mogę zalogować tymi credentialami, więc tu bym szukał problemu, nie w kodzie PHP.

@adamon: Upewnij się że dane do logowania są poprawne.

1

Ale nie możesz z tego kodu mieć odpowiedzi "Połączenie nieudane" jak już powinieneś mieć coś w stylu:
"Connection failed: szczegóły błędu".

BTW. Możesz zdradzić nam z jakiego przedziału wiekowego jesteś?

0

Brak kodów błędów szczegółów błędów.

0

Wklej dokładny komunikat, bo to nie ma sensu.
Wklej cały kod bo to nie ma sensu.
Opisz jak ten kod wywołujesz bo to nie ma sensu.


Ile masz lat i dlaczego to piszesz? Chcesz się czegoś nauczyć? Chcesz zrobić jakąś aplikację?

0

Nic nie wyświetla się na ekranie.

0
adamon napisał(a):

Nic nie wyświetla się na ekranie.

Dodaj ten kod:

var_dump(mysqli_connect_errno());
var_dump(mysqli_connect_error());

i pokaż wynik

1

To nie ma sensu.

Mam odpowiedz ze strony skryptu.
Połączenie nieudane.

A za chwilę

Nic nie wyświetla się na ekranie.

Nie wiesz co robisz, nie chcesz się nauczyć niczego i w dodatku wprowadzasz nas w błąd.
Wklej cały kod i opisz jak go wywołujesz.
Odpowiedz na pytania ile masz lat i po co to w ogóle robisz.

0

po użyciu dump

int(0) Connection failed:

1

Odpowiedz na pytania od @jurek1980 :

jurek1980 napisał(a):

Wklej cały kod i opisz jak go wywołujesz.
Odpowiedz na pytania ile masz lat i po co to w ogóle robisz.

Inaczej nie będziemy w stanie Ci pomóc.

0

Mam php na serwerze home.pl Tam uruchamiają się mi wszystkie skrypty php.
Ale się już nie uruchamia połączenie z serwerem.
Cały skrypt jest następujący.

<?php
class DBController {
	private $host = "localhost";
	private $user = "root";
	private $password = "test";
	private $database = "blog_samples";
	private $conn;
	
	function __construct() {
		$this->conn = $this->connectDB();
	}
	
	function connectDB() {
		$conn = mysqli_connect($this->host,$this->user,$this->password,$this->database);
		return $conn;
	}
	
	function runQuery($query) {
		$result = mysqli_query($this->conn,$query);
		while($row=mysqli_fetch_assoc($result)) {
			$resultset[] = $row;
		}		
		if(!empty($resultset))
			return $resultset;
	}
	
	function numRows($query) {
		$result  = mysqli_query($this->conn,$query);
		$rowcount = mysqli_num_rows($result);
		return $rowcount;	
	}
}
?>
0

Miałeś pokazać cały kod.

0

To jest cały plik php, cały kod

1
adamon napisał(a):

To jest cały plik php, cały kod

To pokaż kod którym wywołujesz ten kod - CAŁY.

0

Dodaj informacje jak to wywołujesz. Czyli np. wchodzę na stronę www.mojasteona/test.php Wytnij dane wrażliwe. Chodzi o to byśmy wiedzieli co robisz.
Dodaj informacje jak nazywają się pliki w których trzymasz kod.

0

https://serwer2252156.home.pl/dbcontroller.php po wpisaniu plik dbcontroller powinien się uruchomić

1

To tak nie zadziała. Musisz przeczytać coś o obiektówce. Próba wyjaśnienia wszystkiego to pisanie takiej książki/ kursu od zera.

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