Puncte:0

Conexiune PHP la Maria DB

drapel lk

Sperăm că cineva poate explica o problemă pe care am găsit-o făcând o conexiune simplă între PHP 7 și MariaDB Server 10.3.32 pe Ubuntu 20.04.

Iată datele conexiunii:

$dsn = "mysql:localhost; dbname=nume bază de date; set de caractere=utf8mb4";  
$opțiuni = [ PDO::ATTR_EMULATE_PREPARES => false,  
             PDO::ATTR_ERRMODE => PDO::ERRORMODE_EXCEPTION,   
             PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
            ];
$pdo = PDO nou($dsn, „nume utilizator”, „parolă”, $opțiuni);

The $opțiuni trebuia eliminat înainte de a scoate date de șir în program.Fără a face acest lucru, aș primi doar cutii negre care presupun că sunt un tip de date, dar nu șirurile pe care le căutam.

Am încercat să comentez PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, dar încă înțeleg problema. Am descoperit că, dacă comentez PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, pot folosi o buclă for pentru a obține informații cu indexul numeric $dvds[0][0]; dar nu pot folosi numele coloanei bazei de date, adică. $dvds['titlu']; dacă îl las necomentat îl pot obține cu print_r, dar nu primesc nimic în bucla for folosind numărul sau indexul asociativ. Ciudat! Am aflat că nu accesam corect datele returnate. Trebuia să folosesc o buclă foreach, apoi să accesez fiecare rând după titlul asociativ al fiecărei coloane din baza de date. Mulțumiri.

Mike G avatar
drapel lk
ar trebui să citească $dsn = "mysql:host=localhost; dbname=databasename;charset=utf8mb4";
Mike G avatar
drapel lk
Am descoperit că, dacă comentez PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, pot folosi o buclă for pentru a obține informații cu indexul numeric $dvds[0][0]; dar nu pot folosi numele coloanei bazei de date, adică. $dvds['titlu']; dacă îl las necomentat îl pot obține cu print_r, dar nu primesc nimic în bucla for folosind numărul sau indexul asociativ. Ciudat!
Puncte:0
drapel lk

După o săptămână în care am încercat lucruri, am descoperit în sfârșit că problema era că codul CSS avea toate tabelele de fundal în negru și textul era negru, așa că nimic nu era vizibil.Nu pot să cred, dar asta a fost problema de la început. Mă simt prost când postez asta, dar poate că va ajuta pe altcineva. Mulțumiri.

Puncte:-1
drapel ec

este posibil să fii dispărut gazdă= pe dumneavoastră $dsn misiune?

ca:

$dsn = "mysql:host=localhost; dbname=nume baze de date; charset=utf8mb4";
Mike G avatar
drapel lk
Aceasta nu pare să fie problema, deoarece atunci când comentez opțiunile, conexiunea funcționează și oferă datele așteptate. Mulțumesc pentru sugestie.
Mike G avatar
drapel lk
Când am tastat întrebarea, am uitat să introduc host, dar este în șirul din program. Mulțumesc că ai subliniat-o. Totuși, încă nu știu de ce opțiunile nu sunt corecte. Mulțumiri

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.