Как вы получаете доступ к столбцам с пробелом в них через 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
Используйте кавычки. Пример: "имя с пробелами"