Jak poprawnie zalogować się do MySQL?

Jak poprawnie zalogować się do MySQL?
G1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 52
0

XAMPP Wyrzuca mi na stronie:

Kopiuj
Fatal error: Uncaught mysqli_sql_exception: Access denied for user 'gabor'@'localhost' (using password: YES)
in C:\xampp\htdocs\tmp\index.php:8
Stack trace:
#0 C:\xampp\htdocs\tmp\index.php(8): mysqli->__construct('localhost', 'gabor', Object(SensitiveParameterValue), 'gabor')
#1 {main} thrown in C:\xampp\htdocs\tmp\index.php on line 8'.

oczywiście w linii 8 mam:

Kopiuj
$con = new mysqli(...);

Proszę! Jak mam się połączyć?

jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3581
3

Na pewno masz prawidłowo podanego użytkownika, hasło i bazę?
Sprawdź sobie w XAMPP i ustaw ewentulanie nowe: https://kinsta.com/knowledgebase/xampp-mysql-password/
Tak BTW.
Nie ucz się już i nie pisz połączeń przy użyciu mysqli w dzisiejszych czasach trzeba używać już PDO: https://www.php.net/manual/en/book.pdo.php

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
2

Nie polecam używać mysqli. Dużo lepiej użyć PDO.

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
0
gaborek1987 napisał(a):

Proszę! Jak mam się połączyć?

nadać użytkownikowi gabor odpowiednie uprawnienia w bazie

TR
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: 700m n.p.m.
  • Postów: 681
1
Riddle napisał(a):

Nie polecam używać mysqli. Dużo lepiej użyć PDO.

PDO to prawodpodobnie najlepszy wybór, ale....

W niektórych przypadkach natywny driver jest konieczny, np. kiedy trzeba skorzystać w SQL z niestandardowych poleceń - np. z natywnej składni dla JSONa w PostgreSQL której nie da się wykorzystać w aktualnym PDO: znak ? jest w PDO placeholderem, a w PostgreSQL jest jedną z funkcji do operowania na json/jsonb.

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
3
TomRZ napisał(a):

W niektórych przypadkach natywny driver jest konieczny, np. kiedy trzeba skorzystać w SQL z niestandardowych poleceń - np. z natywnej składni dla JSONa w PostgreSQL której nie da się wykorzystać w aktualnym PDO: znak ? jest w PDO placeholderem, a w PostgreSQL jest jedną z funkcji do operowania na json/jsonb.

https://stackoverflow.com/questions/36173440/how-to-ignore-question-mark-as-placeholder-when-using-pdo-with-postgresql

Zajęło mi 2 sekundy żeby znaleźć ten link w google po wpisaniu "pdo postgres json placeholder".

Poza tym, myślisz że na prawdę Twórcy PDO nie wzięliby pod uwagę przypadku że ktoś chce użyć znaku ? w zapytaniu? No szanujmy się.

TR
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: 700m n.p.m.
  • Postów: 681
1

Niestety ale to jest złe rozwiązanie. Co więcej w samym PostgreSQL istnieją odpowiedniki funkcji ?, które można zapisać tak, że będą zgodne ze standardem SQL i można korzystać z PDO.

Niestety, zastępowanie natywnej funkcji ? (i innych tego typu) jakimkolwiek obejściem - tym które wymieniłem lub własnym jak na stacku, skutkuje tym, że PostgreSQL nie radzi sobie z optymalizacją - nie korzysta w Plannerze np. z indeksów JSONowych.

Dlatego szybka odpowiedź ze stacka znaleziona w 5 sekund nie jest prawidłowym rozwiązaniem, na dzień dzisiejszy, dopóki PostgreSQL tego nie zoptymalizuje - ja jestem zmuszony korzystać z natywnego (w kilku miejscach, reszta PDO).

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
1
TomRZ napisał(a):

Niestety ale to jest złe rozwiązanie. Co więcej w samym PostgreSQL istnieją odpowiedniki funkcji ?, które można zapisać tak, że będą zgodne ze standardem SQL i można korzystać z PDO.

Niestety, zastępowanie natywnej funkcji ? (i innych tego typu) jakimkolwiek obejściem - tym które wymieniłem lub własnym jak na stacku, skutkuje tym, że PostgreSQL nie radzi sobie z optymalizacją - nie korzysta w Plannerze np. z indeksów JSONowych.

A przeczytałeś cały wątek? Zobacz na tą odpowiedź: https://stackoverflow.com/a/69775182/3429015

Użycie podwójnego ?? w PDO yielduje natywne ?.

TR
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: 700m n.p.m.
  • Postów: 681
0

PDO to jedno, ale niestety ORM to drugie - nie podoba się ORMowi podwójny ??, jeżeli miałbym to całkowicie integrować z zasadami systemu to powinno być na ORM, samo PDO mi nic nie daję, jest takim samym wyjątkiem jak natywny driver, a natywny driver pewnie odrobinę szybciej działa. I robiąc to kapnąłem się, że już to wcześniej przerabiałem, tylko zapomniałem - za dużo projektów na głowie.

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
0
TomRZ napisał(a):

PDO to jedno, ale niestety ORM to drugie - nie podoba się ORMowi podwójny ??, jeżeli miałbym to całkowicie integrować z zasadami systemu to powinno być na ORM, samo PDO mi nic nie daję, jest takim samym wyjątkiem jak natywny driver, a natywny driver pewnie odrobinę szybciej działa. I robiąc to kapnąłem się, że już to wcześniej przerabiałem, tylko zapomniałem - za dużo projektów na głowie.

Tak, PDO to nie jest ORM, to jest po prostu biblioteka/driver do połączenia z bazą danych, i ma wiele przewag na mysqli_.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.