protected static $db_pass = DB_PASS;
    protected static $db_name = DB_NAME;
    /**
     * static function to inistalize database object
     * @param default var to select to inistalize different dbo
     * @return a dbo instance 
     */
    static function get_instance($type = true)
    {
        if ($type) {
            $instance = new mysqli_db();
        } else {
            $instance = new pdo_db();
        }
        return $instance;
    }
    /**
     * above abstract function will be implemented in child class
     */
    abstract function connect_db();
    abstract function mysql_prep($string);
    abstract function confirm_query($result_set);
    abstract function count_number_rows($result_set);
    abstract function query($query);
    abstract function fetch_assoc($result_set);
    abstract function free_result($result_set);
    abstract function close_connection();
    abstract function affected_rows($stmt);
}
$dbo = DBO::get_instance();
//$dbo->connect_db();