Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Początkowy problem., localhost nie łączy się z bazą danych.
Expro
post
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
 
Start new topic
Odpowiedzi
Expro
post
Post #2





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
dublinka
post
Post #3





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

Posty w temacie
- Expro   [MySQL][PHP]Początkowy problem.   30.08.2019, 21:16:54
- - ohm   Sprawdz linie 8, zobacz co mowi komunikat i przyjr...   30.08.2019, 21:27:22
- - Expro   Dziękuję za odpowiedź. Przepisałem jeszcze raz ta...   30.08.2019, 21:46:03
|- - dublinka   Cytat(Expro @ 30.08.2019, 21:46:03 ) ...   31.08.2019, 08:40:04
- - emillo91   Jeżeli nie masz błędu to możliwe, że masz ustalone...   30.08.2019, 22:05:46
- - Expro   Przepraszam za tak banalne pytanie, ale nie bardzo...   30.08.2019, 22:19:35
- - viking   Uruchom polecenie phpinfo(). Znajdź lokalizację pl...   31.08.2019, 00:26:57
- - Tomplus   @Expro do umieszczania kodu mamy tutaj tagi [PHP] ...   31.08.2019, 06:11:35
- - Expro   Próbowałem tak zrobić i nie widzę poprawy. Chyba ...   31.08.2019, 09:58:37
|- - dublinka   Cytat(Expro @ 31.08.2019, 09:58:37 ) ...   31.08.2019, 11:45:00
- - viking   Zainstaluj według poradnika z mojej stopki https:...   31.08.2019, 10:11:22
- - Expro   Ok, dziękuję, poczytam sobie o tym i będę działał....   31.08.2019, 11:03:27
- - Expro   Teraz wszystko pousuwałem i lecę od początku. Ale ...   31.08.2019, 12:20:15
- - dublinka   Cytat(Expro @ 31.08.2019, 12:20:15 ) ...   31.08.2019, 12:26:39
- - Expro   Uczyłem się podstaw, robiłem ćwiczenia i idzie dob...   31.08.2019, 18:35:11
- - viking   A jak w końcu to zainstalowałeś? Z mojego poradnik...   31.08.2019, 18:41:54
- - Expro   Nie, z tego poradnika nie wiele rozumiałem, znalaz...   31.08.2019, 18:45:50
- - viking   Ale co nie zrozumiałeś? Masz w nim krok po kroku c...   31.08.2019, 19:15:56
- - Expro   Nie, nie jestem dzieciakiem. Chce się nauczyć back...   31.08.2019, 19:29:47
- - dublinka   ustaw prawa uzytkownikowi w bazie - haslo   31.08.2019, 19:36:12
- - viking   Muszę cię zmartwić ale OOP jest obecnie norma wszę...   31.08.2019, 19:39:57
|- - dublinka   Cytat(viking @ 31.08.2019, 19:39:57 )...   31.08.2019, 19:51:15
- - viking   Dajesz wszystkim śmieciowe funkcje które zawierają...   31.08.2019, 19:58:19
- - Expro   O boże, nie chciałem żeby moje pytanie o elementar...   31.08.2019, 20:08:29
|- - dublinka   Cytat(Expro @ 31.08.2019, 20:08:29 ) ...   31.08.2019, 20:34:35
- - Expro   Zrobiłem tak, zrobiłem kolejny poradnik i niestety...   31.08.2019, 21:30:36
|- - dublinka   Cytat(Expro @ 31.08.2019, 21:30:36 ) ...   31.08.2019, 21:42:38
- - Expro   Tak, tak zrobiłem. Zrobiłem tak i też nic nie pom...   31.08.2019, 21:50:22
|- - dublinka   Cytat(Expro @ 31.08.2019, 21:50:22 ) ...   1.09.2019, 05:58:09
- - viking   Niektórzy mniej doświadczeni użytkownicy forum mog...   1.09.2019, 04:06:26
- - Expro   Z tym root, to już to wcześniej ogarnąłem. Zrobi...   1.09.2019, 12:12:14
|- - dublinka   Cytat(Expro @ 1.09.2019, 12:12:14 ) Z...   1.09.2019, 12:39:06
- - Expro   Wcześniej hasła nie było, teraz robiąc jeszcze raz...   1.09.2019, 13:10:33
- - dublinka   Cytat(Expro @ 1.09.2019, 13:10:33 ) W...   1.09.2019, 13:35:14


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

 



RSS Aktualny czas: 28.12.2025 - 00:26