Frage

Das heißt, mit einer vorbereiteten Aussage wie:

select col1,...coln from table where col3 = ?

Ich glaube, ich mysqli- $ verwenden> field_count die Anzahl der Spalten zu bekommen zurückgegeben wird (noch nicht ausprobiert).

Aber ist es eine Möglichkeit, jeden Spalt Namen auf die Werte in bind_results zurück zu verknüpfen? Ich konnte immer versuchen, die Spaltennamen aus dem Befehl selbst zu analysieren, aber das ist kein Weg, den ich gehen will nach unten.

Kontext:

Ich möchte in der Lage, eine PHP-Schnittstelle zu definieren, die Klasseneigenschaften zu Spaltennamen aus der Datenbank abbildet zurückgegeben. So gegeben

class A implements IColumnMapped{
    public $prop1, $prop2; private $map;
    public function __construct() {
        $map = array();
        $map['col1'] = & $this->prop1;
        $map['col2'] = & $this->prop2;
    }
    public function getMap() { return $this->map;}
}

und

$mysqli->prepare("select col0, col1, col2, col3 from table");

kann ich bind_results verwenden und dann so etwas wie (pseudoish Code)

for($resultColumns as $columnName) {
    if(isset($map[$columnName])) $map[$columnName] = $results[$columnName];
}

nur die beiden Spalten zu ziehen Ich brauche (col1 und col2) und weisen Sie auf die richtigen Eigenschaften der Klasse A.

War es hilfreich?

Lösung

Andere Tipps

Vielen Dank für diese Korrektur. Es ist sehr nützlich, wenn Sie keine andere Wahl, vor einem ‚select *‘ haben S.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top