Ich habe zwei Tabellen in meiner Datenbank; Benutzer & Freunde. Ich versuche, die Informationen aller Benutzer abzurufen, die mit dem Benutzer befreundet sind, der die Abfrage durchführt. Das Problem ist, dass mein PHP-Code einen "Befehl nicht synchronisiert Fehler" wirft. Außerdem sieht der Code, den ich verwendet habe, ein wenig "hacky" aus, bitte schlagen Sie auch eine andere Alternative vor, falls vorhanden.PHP; Befehle, die nicht synchron sind Fehler
Der Fehler wird in der zweiten Zeile nach der foreach-Schleife ausgelöst.
MEIN CODE:
$friends = [];
$query = "SELECT friend FROM friends WHERE register_id=? AND status=1";
$stmt = $con->prepare($query);
$stmt->bind_param("i",$register_id);
$stmt->execute();
$stmt->bind_result($_friend);
while($stmt->fetch())
array_push($friends,$_friend);
$stmt->close();
$query = "SELECT register_id FROM friends WHERE friend=? AND status=1";
$stmt = $con->prepare($query);
$stmt->bind_param("i",$register_id);
$stmt->execute();
$stmt->bind_result($_fri);
while($stmt->fetch())
array_push($friends,$_fri);
$stmt->close();
$con->next_result();
foreach($friends as $id){
$query="SELECT username,image,location FROM users WHERE register_id=?";
$stmt = $con->prepare($query);<----- Error thrown here
$stmt->bind_param("i",$id);
$stmt->execute();
$stmt->bind_result($_username,$_image,$_location);
$stmt->fetch();
$arr = [
'name'=>$_username,
'image'=>$_image,
'location'=>$_location,
];
$contacts[] = $arr;
}
sendJson(true,"Friends fetched successfully",$contacts);
was ich versucht habe:
Ich habe versucht,
$stmt->store_result();
$stmt->close();
$con->next_result();
Mögliches Duplikat von [Nicht synchronisierte Befehle; Sie können diesen Befehl jetzt nicht ausführen] (http://stackoverflow.com/questions/614671/commands-out-of-sync-you-cant-run-this-command-now) – Chris
Ich habe das versucht. Kein Würfel. Derselbe Fehler. –
Sie sagen, Sie haben sichergestellt, dass Sie alle Ergebnisse der Abfrage in Ihrer foreach-Schleife konsumiert haben. – Chris