Eu acho que o objeto PDO é inválido, porque você está usando aspas duplas com o método/propriedade do objeto, nesse caso você precisa usar a notação de string complexa(
"{$object->property}"
) ou junte strings com .
(um ponto) sobre strings php
$this->db_conn = new PDO("mysql:host=$this->db_host;dbname=$this->db_name", $this->db_user,$this->db_pass);
mudar para:
$this->db_conn = new PDO("mysql:host={$this->db_host};dbname={$this->db_name}", $this->db_user,$this->db_pass);