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.