Re: db inside a class

From: Date: Mon, 31 Mar 2003 10:55:51 +0000
Subject: Re: db inside a class
References: 1  Groups: php.pear.general 
Request: Send a blank email to pear-general+get-4545@lists.php.net to get a copy of this message
it gave me some new ideas but did't really help me with my problem: Call to a member function on a non-object in. were I try to use the query function .patrik On lördag, mar 29, 2003, at 21:20 Europe/Stockholm, Ian P. Christian wrote:
Quoting Mika Tuupola <tuupola@appelsiini.net>:
On Fri, 28 Mar 2003, Patrik Berggren wrote:
I'm trying to use the pear db insade a class of my own, I know that this have been up on the list before(did a search) but I could't get the help need from the privous aswers so here I go:
A snippet from some work I'm doing under the Horde framework atm. Hope this helps? Ian. class Sas_domain_Driver_sql extends Sas_domain_Driver {
    /** Hash containing connection parameters. */
    var $_params = array();
    /** Handle for the current database connection.
        @var object DB $db */
    var $_db;
    /** Boolean indicating whether or not we're connected to the SQL server. */
    var $_connected = false;
    /**
     * Attempts to open a persistent connection to the SQL server.
     *
     * @return boolean    True on success; exits (Horde::fatal()) on error.
     */
    function _connect()
    {
        if (!$this->_connected) {
            if (!is_array($this->_params)) {
                Horde::fatal(new PEAR_Error(_("No configuration information
specified for SQL Tasks.")), __FILE__, __LINE__);
            }
            if (!isset($this->_params['phptype'])) {
                Horde::fatal(new PEAR_Error(_("Required 'phptype' not
specified in tasks configuration.")), __FILE__, __LINE__);
            }
            if (!isset($this->_params['hostspec'])) {
                Horde::fatal(new PEAR_Error(_("Required 'hostspec' not
specified in tasks configuration.")), __FILE__, __LINE__);
            }
            if (!isset($this->_params['username'])) {
                Horde::fatal(new PEAR_Error(_("Required 'username' not
specified in tasks configuration.")), __FILE__, __LINE__);
            }
            if (!isset($this->_params['password'])) {
                Horde::fatal(new PEAR_Error(_("Required 'password' not
specified in tasks configuration.")), __FILE__, __LINE__);
            }
            if (!isset($this->_params['database'])) {
                Horde::fatal(new PEAR_Error(_("Required 'database' not
specified in tasks configuration.")), __FILE__, __LINE__);
            }
            if (!isset($this->_params['domain_table'])) {
                Horde::fatal(new PEAR_Error(_("Required 'domain_table' not
specified in tasks configuration.")), __FILE__, __LINE__);
            }
            if (!isset($this->_params['dns_table'])) {
                Horde::fatal(new PEAR_Error(_("Required 'dns_table' not
specified in tasks configuration.")), __FILE__, __LINE__);
            }
            /* Connect to the SQL server using the supplied parameters. */
            include_once 'DB.php';
            $this->_db = &DB::connect($this->_params, true);
            if (DB::isError($this->_db)) {
                Horde::fatal($this->_db, __FILE__, __LINE__);
            }
            /* Enable the "portability" option. */
            $this->_db->setOption('optimize', 'portability');
            $this->_connected = true;
        }
        return true;
    }
    /**
     * Disconnect from the SQL server and clean up the connection.
     *
     * @return boolean     true on success, false on failure.
     */
    function _disconnect()
    {
        if ($this->_connected) {
            $this->_connected = false;
            return $this->_db->disconnect();
        }
        return true;
    }
    /**
     * Retrieves the user's tasks from the database.
     *
     * @return mixed  True on success, PEAR_Error on failure.
     */
    function retrieve()
    {
        /* Make sure we have a valid database connection. */
        $this->_connect();
        // stuff
        return true;
    }
    /**
     * Stores the user's tasks to SQL server.
     *
     * @return mixed  True on success, PEAR_Error on failure.
     */
    function store()
    {
        /* Make sure we have a valid database connection. */
        $this->_connect();
        // more stuff
        return true;
    }
} ?>


« previous php.pear.general (#4545) next »