PHPでmySQLプリペアドステートメントの結果列名を確認するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1016717

質問

つまり、次のような準備済みステートメントを使用します。

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

$ mysqli-> field_countを使用して、返される列の数を取得できると思います(試したことはありません)。

しかし、各列名をbind_resultsで返される値にリンクする方法はありますか? 私は常にコマンド自体から列名を解析しようとすることができましたが、それは私が行きたい道ではありません。

コンテキスト:

クラスプロパティをデータベースから返された列名にマップするPHPインターフェイスを定義できるようにしたい。与えられた

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

and

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

bind_resultsを使用して、(擬似コード)のようなことを行うことができます

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

必要な2つの列(col1とcol2)のみを引き出して、クラスAの正しいプロパティに割り当てます。

役に立ちましたか?

他のヒント

この修正をありがとう。 「select *」の前に選択肢がない場合に非常に便利です S。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top