Nasıl MySQL PHP ifadesi sonuç sütun adları hazırladık belirleyebilirsiniz?

1 Cevap php

Böyle hazırlanmış bir deyimi ile, bir:

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

Ben (denemedim) iade edilen sütun numarasını almak için $ mysqli-> field_count kullanabilirsiniz inanıyorum.

But is there a way to link each column name to the values returned in bind_results? I could always try to parse the column names out from the commve itself, but that's not a road I want to go down.

Context:

Ben veritabanından döndürülen sütun adlarının sınıf özelliklerini eşleştiren bir PHP arayüzü tanımlamak mümkün olmak istiyorum. Yani verilen

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;}
}

ve

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

I can use bind_results ve then do something like (pseudoish code)

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

to pull out just the two columns I need (col1 ve col2) ve assign them to the correct properties of class A.

1 Cevap

İnanıyorum mysqli_result::fetch_object ve mysqli_result::fetch_fields size yardımcı olabilir.