Как я могу определить имена столбцов результата подготовленной инструкции MySQL в PHP?

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

и

$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.

Это было полезно?

Решение

Другие советы

Спасибо за это Исправление.Это очень полезно, когда у вас нет выбора перед "выбрать *" S.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top