Вы работаете
$stmt = $this->conn->query($query);
Это неверно и завершится ошибкой, так как запрос имеет привязываемый параметр, т.е. firstname = :firstname
Ты должен бежать
Prepare
bindParam
execute
В таком порядке
Также этот запрос
$query = "INSERT INTO" . $this->table_name . "
SET firstname = :firstname";
Когда он все-таки запустится, изменится firstname
в каждой строке в этой таблице на то, что находится в $this->firstname
И не ясно, что вы фактически указали значение ИЛИ в свойстве $conn
.