Waarom doet var_dump(stmt['likedFour']); retourneer 's' :
Omdat je het dollarteken voor stmt mist , dus PHP denkt dat je probeert toegang te krijgen tot de constante stmt in plaats van de variabele $stmt . Aangezien je die constante niet hebt gedefinieerd, zal hij terugvallen op de veronderstelling dat je probeert toegang te krijgen tot de tekenreeks "stmt" . Voor strings moeten indices numeriek zijn, dus PHP zou je een "Illegal string offset"-waarschuwing moeten geven, maar zal proberen dit voor je op te lossen door 'likedFour' te casten naar een geheel getal (dat is 0 ).
Daarom, var_dump(stmt['likedFour']) betekent exact hetzelfde als var_dump("stmt"[0]) naar PHP, daarom krijg je de output "s" :het eerste teken van "stmt" .
Hoe u eigenlijk het resultaat kunt krijgen wil:
U moet eerst de resulterende rijen uit uw query ophalen. $stmt is de mysqli_stmt object dat u gebruikt om de query uit te voeren en de resultaten op te halen, het is eigenlijk niet het resultaat zelf.
Om uzelf in de toekomst kopzorgen te besparen, moet u altijd controleren of uw zoekopdracht zelfs succesvol is uitgevoerd voordat u de resultaten probeert op te halen. Haal vervolgens de rij met gegevens op:
$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']);
}
Als je niet weet hoeveel rijen worden geretourneerd, loop er dan voor de zekerheid doorheen:
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
var_dump($row['likedFour']);
}