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']);
}