/ / Wie kann ich mehrere Variablen auf ihre jeweiligen Werte setzen? [closed] - PHP, MySQL, Arrays, Variablen

Wie kann ich mehrere Variablen auf ihre jeweiligen Werte setzen? [closed] - PHP, MySQL, Arrays, Variablen

Meine SQL-Anweisung gibt ein Array aus zwei assoziativen Schlüsseln nach oben und unten zurück.

query = "SELECT `up`,`down` FROM `records` WHERE `id`=id"

Gibt es eine Möglichkeit, in einer Zeile beide Variablen zu setzen, wie:

$up, $down = "SELECT `up`,`down` FROM `records` WHERE `id`=id"

also nach oben und nach unten werden die entsprechenden Werte genommen?

Antworten:

2 für die Antwort № 1

Wenn Sie nach dem SQL-Aufruf ein assoziatives Array wie folgt erhalten

array(
"up" => "foo",
"down" => "bar"
);

Dann kannst du verwenden extract() um die Variablen zu bekommen $up und $down.

Also könntest du das tun:

// no need to initialize $up and $down

extract(exec_query()); // asusming exec_query() returns the assoc array defined above
echo $up;  // will print "foo"
echo PHP_EOL;
echo $down;  // will print "bar"

PS - Obwohl dies möglich wäre, ist es aus Sicht der Lesbarkeit wirklich schlecht, und ich würde es dringend empfehlen.


3 für die Antwort № 2

Der Rückgabewert von mysqli::query() ist nicht sofort ein assoziatives Array, sondern eine "Ergebnismenge". Und wenn die Abfrage fehlschlägt, bekommen Sie das nicht einmal, aber FALSE. So, während Sie tun konnten

list($up, $down) = $db->query ("SELECT up, down FROM records WHERE id="id";")->fetch_all();

Auf diese Weise können Sie nicht überprüfen, ob die Abfrage tatsächlich funktioniert hat. Sie sollten sie also besser aufteilen.


1 für die Antwort № 3

list() können Sie mehrere Werte aus einem Funktionsaufruf zuweisen. In Ihrem Fall müssen Sie jedoch auch Ihre Abfrage ausführen und Daten von Ihrem Datenbankserver abrufen.

Beispielsweise:

list($up, $down) = mysqli_fetch_array($queryResult, MYSQLI_ASSOC);