Как вы получаете доступ к столбцам с пробелом в них через mysql_fetch_object?

При использовании mysql_fetch_object() для возврата объектов из запроса MySQL иногда имена столбцов имеют пробелы в них и не могут быть псевдонимом, например при запуске SHOW CREATE PROCEDURE. Определение процедуры возвращается в столбце с именем Create Procedure. В моем случае уровень абстракции данных позволяет использовать mysql_fetch_object(), поэтому я не могу просто использовать mysql_fetch_assoc() для решения этой проблемы.

Можно ли использовать столбцы с пробелами при использовании mysql_fetch_object()?

Ответ 1

Мне потребовалось некоторое время, чтобы взломать, поэтому я подумал, что отправлю его здесь, следовательно, быстрый ответ.:)

// Internally, this db abstraction layer uses mysql_fetch_object().
$query = $db->query('SHOW CREATE PROCEDURE `%s`', 'test');
foreach ($query as $row) {
    $procedure = $row->{'Create Procedure'};
}

Я не знаю, является ли это специфичным для PHP-версии, но работает как минимум на PHP 5.3.1 в Windows.

Ответ 2

Вообще говоря,

$recordname->{"my column name"} 

сделает трюк.

Вы также можете сделать print_r($record);, чтобы узнать, как столбцы представлены в объекте.

Ответ 3

Используйте кавычки. Пример: "имя с пробелами"