То есть с готовым утверждением типа:
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;}
}
и
$mysqli->prepare("select col0, col1, col2, col3 from table");
Я могу использовать bind_results, а затем сделать что-то вроде (псевдошумный код)
for($resultColumns as $columnName) {
if(isset($map[$columnName])) $map[$columnName] = $results[$columnName];
}
чтобы вытащить только два нужных мне столбца (col1 и col2) и присвоить им правильные свойства класса A.