Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [MySQL][PHP]Początkowy problem., localhost nie łączy się z bazą danych.
Expro
post 30.08.2019, 21:16:54
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 30.08.2019

Ostrzeżenie: (0%)
-----


Witam,

mam dość banalny problem. Postanowiłem, że mając trochę nadwyżki wolnego czasu pouczę się php. Pobrałem xampp i w folderze htdocs zacząłem tworzyć pierwsze proste rzeczy. Problem polega na tym, że jak chce połączyć się z bazą danych, to localhost wyświetla komunikat o błędzie. "Parse error: syntax error, unexpected ':' in C:\xampp\htdocs\test.php on line 8" . Mój cały kod wygląda tak:

"<?php

$host = 'localhost';
$user = 'Michal';
$pass = 'root';
$db_name = 'blog';

$mysqli = new mysqli:($host, $user, $pass, $db_name);

if ($mysqli->connect_error) {
die('Database connection error: '. $mysqli->connected_error);
} else {
echo "DB conncection successful";
}"

Robiłem wedle filmiku z internetu i tam wszystko działało. Wypróbowałem inny poradnik z bloga link

I również był komunikat o błędzie: "Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\test.php:6 Stack trace: #0 {main} thrown in C:\xampp\htdocs\test.php on line 6"

Rozumiem, że musiałem coś zrobić źle. I pewnie w jakiś nieprawidłowy sposób łącze się z bazą danych. W pasku wyszukiwarki wpisałem "localhost/test.php".

Z góry dziękuję za pomoc.

Pozdrawiam
Expro

Ten post edytował Expro 30.08.2019, 21:17:11
Go to the top of the page
+Quote Post
ohm
post 30.08.2019, 21:27:22
Post #2





Grupa: Zarejestrowani
Postów: 623
Pomógł: 144
Dołączył: 22.12.2010

Ostrzeżenie: (0%)
-----


Sprawdz linie 8, zobacz co mowi komunikat i przyjrzyj sie na filmiku i w kodzie czy na pewno wyglada to tak samo.

Co do mysql_connect to juz jest niewspierany,
Go to the top of the page
+Quote Post
Expro
post 30.08.2019, 21:46:03
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 30.08.2019

Ostrzeżenie: (0%)
-----


Dziękuję za odpowiedź.

Przepisałem jeszcze raz tak jak na filmiku i zgadza się co do znaku. Jest to tutorial o robieniu bloga. Mój kod wygląda tak:
"<?php

$host = 'localhost';
$user = 'root';
$pass = '';
$db_name = 'blog';

$conn = new MySQLi($host, $user, $pass, $db_name);

if ($conn->connect_error) {
die('Database connection error: ' . $conn->connect_error);
}"

łącze się z bazą danych przez inną komendę. Natomiast teraz po przepisaniu ekran po połączaniu się z localhostem jest pusty. Nie ma nim nic. Jedyna różnica jaka jest między mną a programistą na filmiku to taka, że on wpisuje początek "localhost:8888"

Ja usnąłem z folderu htdocs pliki ze stroną startową i po wpisaniu localhost wybieram sobie katalog i pliki, ale problem chyba tkwi gdzieś indziej.
Go to the top of the page
+Quote Post
emillo91
post 30.08.2019, 22:05:46
Post #4





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 29.03.2012

Ostrzeżenie: (0%)
-----


Jeżeli nie masz błędu to możliwe, że masz ustalone połączenie z bazą. Dla testu spróbuj utworzyć przykładową tabelę w bazie danych z przykładowymi danymi i wkleić zapytanie:$result = mysqli_query($con,"SELECT * FROM utworzonatabela"); i wywołaj zapytanie $row=mysqli_fetch_array($result,MYSQLI_ASSOC);
a później var_dump($result)
Go to the top of the page
+Quote Post
Expro
post 30.08.2019, 22:19:35
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 30.08.2019

Ostrzeżenie: (0%)
-----


Przepraszam za tak banalne pytanie, ale nie bardzo wiem jak poprawnie napisac kod o podany skrypt. W php jestem dość początkujący smile.gif Co do połączenia, to tak chyba coś jest nie tak, bo próbowałem robić testy z różnych tutoriali, blogów itd. i nadal nie mogę uzyskać takiego efektu jak na ekranie.
Czy można to jakoś obejść?

EDIT: Jeżeli napiszę prostą komendę:
"<?php
echo('Hello world!');
?> "

To wszystko działa.

Ten post edytował Expro 30.08.2019, 22:21:28
Go to the top of the page
+Quote Post
viking
post 31.08.2019, 00:26:57
Post #6





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Uruchom polecenie phpinfo(). Znajdź lokalizację pliku php.ini, otwórz go i zmień error_reporting na -1, display_errors na on. Restart serwera. Zostaw to dla wszystkich swoich skryptów i poprawiaj możliwe błędy zawsze. Rozszerzenia mysql nie ma w php7. Po new mysqli nie ma prawa być :


--------------------
Go to the top of the page
+Quote Post
Tomplus
post 31.08.2019, 06:11:35
Post #7





Grupa: Zarejestrowani
Postów: 1 872
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


@Expro
do umieszczania kodu mamy tutaj tagi
  1. i [sql] warto korzystać.
  2.  
  3. Zrób tak jak mówi Viking, albo użyj w 1 linii:
  4.  
  5. [php]error_reporting(E_ALL);


Warto skorzystać z manuala dot. MySQLi, https://www.php.net/manual/en/mysqli.query.php
Tam jest testowy kod:

  1. $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
  2.  
  3. if ($mysqli->connect_errno) {
  4. printf("Connect failed: %s\n", $mysqli->connect_error);
  5. exit();
  6. }
  7.  
  8. /* Tworzy tymczasową tabelę - po zakończeniu połączenia zniknie z bazy danych */
  9. if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
  10. printf("Table myCity successfully created.\n");
  11. }
  12.  
  13. /* Przykładowe zapytanie */
  14. if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
  15. printf("Select returned %d rows.\n", $result->num_rows);
  16. $result->close();
  17. }
  18. $mysqli->close();



Go to the top of the page
+Quote Post
dublinka
post 31.08.2019, 08:40:04
Post #8





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Cytat(Expro @ 30.08.2019, 21:46:03 ) *
Dziękuję za odpowiedź.

Przepisałem jeszcze raz tak jak na filmiku i zgadza się co do znaku. Jest to tutorial o robieniu bloga. Mój kod wygląda tak:
"<?php

$host = 'localhost';
$user = 'root';
$pass = '';
$db_name = 'blog';

$conn = new MySQLi($host, $user, $pass, $db_name);

if ($conn->connect_error) {
die('Database connection error: ' . $conn->connect_error);
}"

łącze się z bazą danych przez inną komendę. Natomiast teraz po przepisaniu ekran po połączaniu się z localhostem jest pusty. Nie ma nim nic. Jedyna różnica jaka jest między mną a programistą na filmiku to taka, że on wpisuje początek "localhost:8888"

Ja usnąłem z folderu htdocs pliki ze stroną startową i po wpisaniu localhost wybieram sobie katalog i pliki, ale problem chyba tkwi gdzieś indziej.





Jeśłi miałbyś błąd w połączeniu to ten kawałek wyłapałby to:

  1. pobierz, plaintext
  2. if ($conn->connect_error) {
  3. die('Database connection error: ' . $conn->connect_error);
  4. }


Jeśli nie ma albo jesli chcesz być pewny ze polaczenie zostalo zainicjowane to dodaj do tego warunku else {}

  1. pobierz, plaintext
  2. if($conn->connect_error)
  3. {
  4. exit("Błąd połączenia: " . $mysqli->connect_error);
  5. } else {
  6. echo 'Połączenie zainicjowane';
  7. }


Oczywiscie to tylko na potrzebe sprawdzenia - pozniej to usun. Zawsze w taki sposob mozesz sprawdzac czy jest ok.

Po drugie. Masz białą stronę ponieważ nic nie pobierasz z bazy / tabeli.

Baza danych to jakby Osiedle. Jak wiadomo na osiedlu mogą być bloki [w przypadku bazy jest to właśnie tabela lub tabele wiec wiecej tych bloków] W kazdej tabeli są wiersze [analogicznie w bloku są mieszkania] Wkazdym wierszu [i mieszkaniu] jest numer ktory identyfikuje wiersz [mieszkanie] To tak obrazowo. ID to unikalny identyfikator przypisany kazdemu wierszowi. [Oczywiscie wcale go nie musi byc bo mozna sioe odwolywac bezposrednio do innych kolumn ale najwygodniej jest odwolywac sie do ID i po tym identyfikatorze juz wiesz ktora koilumna jest pobrana] Tak smao w mieszkaniach; masz numer a w mieszkaniu moze mieszkac okreslona liczba osob. Identycznie jest w wierszu; jest ID i ustalone nazwy kolumn pod ktorymi znajduja sie rekordy. Znajac przykladowo imie mozesz pobrac ze wszyskich tabel [blokow] imiona mieszkancow rozpoczynajace sie na konkretna litere [lub kończące sie lub majace dokladna nazwe] ich wiek, rodzaj wykonywanej pracy, kolor oczu itd.


To tak obrazowo zebys mial jakies minimum co do bazy i tabel. Mysle ze choc troche Ci to rozjasnilo.

Wracajac do przykladu Twojego.
Jesli łączysz sie z baza to juz masz ja ustawioną. Teraz albo juz masz tabele albo ja ustaw sobie. Okresl typ kolumn i nazwy. Wprowadz dane do tych kolumn a nastepnie polacz sie z baza i pobierz z tabeli dane i je wyswietl.

Jesli uczysz sie z tutoriali w necie sprawdzaj w ktorym roku to zostalo napisane, Mysql juz jest stare.
Najpierw naucz sie podstaw czyli pobierania z tabeli petlą wszystkiego, potem wg. ustalonych swoich zalozen [pobieranie jednego konretnego rekordu bez petli, pobieranie rekordow zaleznych od wprowadzonych danych z formularza itp] zastusuj komendy LIKE, WHERE, UPDATE, DELETE....pozniej poczytaj o SQL INJECTION; binduj parametry i filtruj dane ktore maja zostac wprowadzone do bazy.

Do ustawienbia bazy i tabeli od razu mozesz uzyc tego przykladu:

  1. <?php
  2.  
  3. const SERVER_NAME = 'localhost';
  4. const SERVER_USERNAME = 'root';
  5. const SERVER_USERNAME_PASSWORD = 'pwd';
  6. const SERVER_DATABASE_NAME = 'nazwabazy';
  7. const SERVER_TABLE_NAME = 'nazwatabeli';
  8.  
  9.  
  10.  
  11. if(!function_exists('DBConnectProperly'))
  12. {
  13. function DBConnectProperly($ServerName, $UserName, $UserPassword, $DbName, $DbContent)
  14. {
  15. $Connection = mysqli_connect($ServerName, $UserName, $UserPassword);
  16.  
  17. if(!$Connection)
  18. {
  19. print 'Nie mozna polączyć się z MySQL<br>';
  20.  
  21. } else {
  22.  
  23. print 'Połączono z MySQL<br>';
  24.  
  25. }
  26.  
  27. $CreateDB = mysqli_query($Connection, 'CREATE DATABASE ' . $DbName);
  28.  
  29. if(!$CreateDB)
  30. {
  31.  
  32. print 'Nie można ustawic bazy danyc lub taka baza ( ' . $DbName . ' ) juz istnieje<br>';
  33.  
  34. } else {
  35.  
  36. print 'Ustawiono baze danych ( ' . $DbName . ' )<br>';
  37.  
  38. }
  39.  
  40. $SelectDB = mysqli_select_db($Connection, $DbName);
  41.  
  42. if(!$SelectDB)
  43. {
  44. 'Nie mozna polaczyc sie z baza danych ' . mysqli_connect_error();
  45.  
  46. } else {
  47.  
  48. print 'Polączono z baza danych ( ' . $DbName . ' )<br>';
  49. }
  50.  
  51.  
  52. $TableContent = "CREATE TABLE $DbContent" . "(
  53. id INT(60) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  54. imie VARCHAR(50) COLLATE utf8_unicode_ci NOT NULL,
  55. nazwisko VARCHAR(50) COLLATE utf8_unicode_ci NOT NULL,
  56. email VARCHAR(30) COLLATE utf8_unicode_ci NOT NULL,
  57. time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
  58. )ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci";
  59.  
  60. if(mysqli_query($Connection, $TableContent))
  61. {
  62.  
  63. print 'Tabela ( ' . $DbContent . ' ) zostala ustawiona prawidlowo';
  64.  
  65. } else {
  66.  
  67. print 'Blad w ustawieniu tabeli ' . $DbContent . ' ' . mysqli_error($Connection) . '<br>';
  68.  
  69. }
  70.  
  71. mysqli_close($Connection);
  72.  
  73. }
  74.  
  75. }
  76.  
  77. DBConnectProperly(SERVER_NAME, SERVER_USERNAME, SERVER_USERNAME_PASSWORD, SERVER_DATABASE_NAME, SERVER_TABLE_NAME);
  78.  
  79.  
  80.  
  81. ?>



--------------------
Go to the top of the page
+Quote Post
Expro
post 31.08.2019, 09:58:37
Post #9





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 30.08.2019

Ostrzeżenie: (0%)
-----


Próbowałem tak zrobić i nie widzę poprawy.

Chyba coś sknociłem w instalacji xamppa, robiłem to wedle poradnika z tej strony: LINK

Nie bardzo wiem czemu to nie działa. Ogólnie tutoriale, które sobie przeglądam zawsze staram się wybierać z roku bieżącego, ewentualnie z 2018 r.

Niestety po tym jak po powtórnej instalacji xamppa, utworzyłem w katalogu htdocs folder z strona-www.pl i tam plik index.html, to nadal wyszukiwarka mi tego nie widzi. Może ktoś zna jakąś inną alternatywę do zainstalowania środowiska pod php w ogóle?

I ogólnie bardzo Wam dziękuję za pomoc.

Pozdrawiam serdecznie.

Ten post edytował Expro 31.08.2019, 10:01:13
Go to the top of the page
+Quote Post
viking
post 31.08.2019, 10:11:22
Post #10





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Zainstaluj według poradnika z mojej stopki
https://prophp.pl/article/20/konfiguracja_s...cgi_pod_windows
Tylko pobierz najnowszą wersję php. Ogólnie możesz sobie też poczytać np o pdo.


--------------------
Go to the top of the page
+Quote Post
Expro
post 31.08.2019, 11:03:27
Post #11





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 30.08.2019

Ostrzeżenie: (0%)
-----


Ok, dziękuję, poczytam sobie o tym i będę działał. Jeżeli ktoś jeszcze ma linki do poradników jak zacząć z php, które są aktualne to byłbym wdzięczny za przesłanie.

Pozdrawiam
Go to the top of the page
+Quote Post
dublinka
post 31.08.2019, 11:45:00
Post #12





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Cytat(Expro @ 31.08.2019, 09:58:37 ) *
Próbowałem tak zrobić i nie widzę poprawy.

Chyba coś sknociłem w instalacji xamppa, robiłem to wedle poradnika z tej strony: LINK

Nie bardzo wiem czemu to nie działa. Ogólnie tutoriale, które sobie przeglądam zawsze staram się wybierać z roku bieżącego, ewentualnie z 2018 r.

Niestety po tym jak po powtórnej instalacji xamppa, utworzyłem w katalogu htdocs folder z strona-www.pl i tam plik index.html, to nadal wyszukiwarka mi tego nie widzi. Może ktoś zna jakąś inną alternatywę do zainstalowania środowiska pod php w ogóle?

I ogólnie bardzo Wam dziękuję za pomoc.

Pozdrawiam serdecznie.


jaka podajesz sciezke do tego pliku.


Pisales ze wczesniej wywolane bylo polaczenie bo bylo [nie dostales info o jego braku]


Więc ?

Ten post edytował dublinka 31.08.2019, 12:06:43


--------------------
Go to the top of the page
+Quote Post
Expro
post 31.08.2019, 12:20:15
Post #13





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 30.08.2019

Ostrzeżenie: (0%)
-----


Teraz wszystko pousuwałem i lecę od początku. Ale z tego co pamiętam, to kombinowałem na różne sposoby, np. "localhost/test.php".

Nie bardzo też rozumiem czemu w niektórych przypadkach jest łączenie się przez localhost/8080, a czasem jest to pomijane.

Ogólnie teraz poczytam materiały, które tu dostałem i będę przerabiał podstawy. Kodować umiem w innych językach, więc php mniej więcej rozumiem jeżeli chodzi o składanie. Tylko mam problemy z localhostem i staram się to ogarnąć.
Go to the top of the page
+Quote Post
dublinka
post 31.08.2019, 12:26:39
Post #14





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Cytat(Expro @ 31.08.2019, 12:20:15 ) *
Teraz wszystko pousuwałem i lecę od początku. Ale z tego co pamiętam, to kombinowałem na różne sposoby, np. "localhost/test.php".

Nie bardzo też rozumiem czemu w niektórych przypadkach jest łączenie się przez localhost/8080, a czasem jest to pomijane.

Ogólnie teraz poczytam materiały, które tu dostałem i będę przerabiał podstawy. Kodować umiem w innych językach, więc php mniej więcej rozumiem jeżeli chodzi o składanie. Tylko mam problemy z localhostem i staram się to ogarnąć.

Łączenie sie na localu poprzez port. To jest właśnie Twoje 8080.

Jesli działa Ci normalnie nie musisz nic robic. Nie szukaj dziury w całym.

Proszę

https://stackoverflow.com/questions/1115223...-just-localhost

Ten post edytował dublinka 31.08.2019, 12:34:36


--------------------
Go to the top of the page
+Quote Post
Expro
post 31.08.2019, 18:35:11
Post #15





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 30.08.2019

Ostrzeżenie: (0%)
-----


Uczyłem się podstaw, robiłem ćwiczenia i idzie dobrze, wszystko do momentu, w którym mam się połączyć z bazą danych.

Wkleiłem kod, który podała dublinka parę postów wyżej i mam takie coś:


Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\xampp\htdocs\phptest\index.php on line 15
Nie mozna polączyć się z MySQL

Warning: mysqli_query() expects parameter 1 to be mysqli, bool given in C:\xampp\htdocs\phptest\index.php on line 27
Nie można ustawic bazy danyc lub taka baza ( nazwabazy ) juz istnieje

Warning: mysqli_select_db() expects parameter 1 to be mysqli, bool given in C:\xampp\htdocs\phptest\index.php on line 40

Warning: mysqli_query() expects parameter 1 to be mysqli, bool given in C:\xampp\htdocs\phptest\index.php on line 60

Warning: mysqli_error() expects parameter 1 to be mysqli, bool given in C:\xampp\htdocs\phptest\index.php on line 67
Blad w ustawieniu tabeli nazwatabeli

Warning: mysqli_close() expects parameter 1 to be mysqli, bool given in C:\xampp\htdocs\phptest\index.php on line 71

Nie mam jeszcze wiedzy, jak mogę zrobić, żeby nie było informacji o błędach.
Go to the top of the page
+Quote Post
viking
post 31.08.2019, 18:41:54
Post #16





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A jak w końcu to zainstalowałeś? Z mojego poradnika? Bo jeśli tak to serwer mysql instalujesz oddzielenie i tam ustawiasz usera i hasło. Komunikat jasno ci mówi że dostęp zabroniony.


--------------------
Go to the top of the page
+Quote Post
Expro
post 31.08.2019, 18:45:50
Post #17





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 30.08.2019

Ostrzeżenie: (0%)
-----


Nie, z tego poradnika nie wiele rozumiałem, znalazłem filmiki, które łopatologicznie tłumaczyły podstawy. I ogólnie wszystko idzie dobrze, ale właśnie do tego momentu.
Go to the top of the page
+Quote Post
viking
post 31.08.2019, 19:15:56
Post #18





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Ale co nie zrozumiałeś? Masz w nim krok po kroku co pobrać i gdzie zmienić. A tak masz jakiś serwer w którym nie masz pojęcia co się dzieje ani nawet jakie usługi z jakim użytkownikiem i hasłem pracują. Tylko stawiając samodzielnie serwer jesteś w stanie cokolwiek pojąć i się nauczyć na przyszłość. Chyba że jesteś z tych nowoczesnych dzieciaków którzy jak nie mają instrukcji na YT to nie potrafią sobie chleba ukroić.

Ten post edytował viking 31.08.2019, 19:18:18


--------------------
Go to the top of the page
+Quote Post
Expro
post 31.08.2019, 19:29:47
Post #19





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 30.08.2019

Ostrzeżenie: (0%)
-----


Nie, nie jestem dzieciakiem. Chce się nauczyć backendu, jestem grafikiem i wizualna częścią stron umiem sobie radzić. Znam też w miarę programowanie obiektowe, ale nie chce iść w tą stronę. Moim celem jest nauczyć się robić strony, typu właśnie blogi/sklepy, wiem, że są gotowe szablony, wixy i inne cuda niewidy, ale chce to rozumieć od tej strony technicznej. Nie jest to ani projekt na studia, ani do pracy, tylko chce się nauczyć sam dla siebie.

Tego poradnika nie rozumiałem, szukałem czegoś co przedstawi mi łopatologicznie od a do z. I akurat tego nie rozumiem na ten moment.
Go to the top of the page
+Quote Post
dublinka
post 31.08.2019, 19:36:12
Post #20





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


ustaw prawa uzytkownikowi w bazie - haslo


--------------------
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 30.04.2025 - 12:32