Por que var_dump(stmt['likedFour']); retornar 's' :
Porque está faltando o cifrão antes de
stmt , então o PHP pensa que você está tentando acessar a constante stmt em vez da variável $stmt . Como você não definiu essa constante, ela voltará a assumir que você está tentando acessar a string "stmt" . Para strings, os índices devem ser numéricos, então o PHP deve estar lançando um aviso "Illegal string offset", mas tentará corrigi-lo para você lançando 'likedFour' para um inteiro (que será 0 ). Portanto,
var_dump(stmt['likedFour']) significa exatamente a mesma coisa que var_dump("stmt"[0]) para PHP, e é por isso que você está obtendo a saída "s" :o primeiro caractere de "stmt" . Como obter o resultado que você realmente deseja:
Primeiro você precisa recuperar as linhas resultantes de sua consulta.
$stmt é o mysqli_stmt objeto que você usa para executar a consulta e recuperar os resultados, não é realmente o resultado em si. Para evitar dores de cabeça no futuro, sempre verifique se sua consulta foi executada com sucesso antes de tentar recuperar os resultados. Em seguida, busque a linha de dados:
$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']);
}
Se você não sabe quantas linhas serão retornadas, percorra-as apenas para garantir:
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
var_dump($row['likedFour']);
}