Dlaczego var_dump(stmt['likedFour']); zwróć 's' :
Ponieważ brakuje Ci znaku dolara przed stmt , więc PHP myśli, że próbujesz uzyskać dostęp do stałej stmt zamiast zmiennej $stmt . Ponieważ nie zdefiniowałeś tej stałej, wrócimy do założenia, że próbujesz uzyskać dostęp do ciągu "stmt" . W przypadku łańcuchów indeksy muszą być numeryczne, więc PHP powinno rzucać ostrzeżenie „Niedozwolone przesunięcie ciągu”, ale spróbuje to naprawić, rzutując 'likedFour' na liczbę całkowitą (która będzie wynosić 0 ).
Dlatego var_dump(stmt['likedFour']) oznacza dokładnie to samo, co var_dump("stmt"[0]) do PHP, dlatego otrzymujesz wynik "s" :pierwszy znak z "stmt" .
Jak uzyskać wynik faktycznie chcesz:
Najpierw musisz pobrać wynikowe wiersze z zapytania. $stmt jest mysqli_stmt obiekt, którego używasz do wykonania zapytania i pobrania wyników, nie jest w rzeczywistości samym wynikiem.
Aby oszczędzić sobie bólu głowy w przyszłości, zawsze sprawdzaj, czy zapytanie zostało wykonane pomyślnie, zanim spróbujesz pobrać wyniki. Następnie pobierz wiersz danych:
$success = $stmt->execute();
if (!$success) {
echo $stmt->error;
} else if ($stmt->num_rows == 0) {
echo 'No results matching that username';
} else {
$result = $stmt->get_result();
$row = $result->fetch_assoc();
var_dump($row['likedFour']);
}
Jeśli nie wiesz, ile wierszy zostanie zwróconych, przejrzyj je na wszelki wypadek:
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
var_dump($row['likedFour']);
}