Атрибут объекта php с точкой в ​​имени

У меня есть таблица mysql с такими столбцами, как 'operation.date', 'operation.name' и т.д. После получения данных таблицы как объекта с помощью $mysqli->fetch_object() я получу это (print_r строки):

stdClass Object
(
[id] => 2
[operation.date] => 2010-12-15
[operation.name] => some_name
)

как я могу использовать operation.date и operation.name и все другие свойства, названные странным именем?

Ответ 1

Укажите псевдонимы в вашем SQL-запросе, например SELECT column AS nameWithoutDots ...
или получить доступ к этим свойствам с помощью $object->{'operation.name'}
или отбрасывать объект в массив следующим образом: $obj = (array)$obj; echo $obj['operation.name'].

Ответ 2

Правильный способ доступа к свойствам с точкой должен быть:

echo $object->{"operation.date"}

Ответ 3

Чтобы получить доступ к этим атрибутам, вам необходимо обернуть их фигурными скобками:

echo $object->{"operation.date"} //2010-12-15

Если вы установите атрибут таким образом, удаляемый символ будет удален, что позволит вам получить доступ к атрибуту как echo $object->operationdate //2010-12-15

Ответ 4

Измените sql, чтобы вернуть допустимые имена свойств, используя функцию "как"

например. выберите operation.date в качестве даты

Ответ 5

Вы можете получить ассоциированный массив вместо объекта, используя $mysqli->fetch_assoc()