Re: db inside a class
| From: | Patrik Berggren | 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: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 {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:/** 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 informationspecified for SQL Tasks.")), __FILE__, __LINE__);} if (!isset($this->_params['phptype'])) { Horde::fatal(new PEAR_Error(_("Required 'phptype' notspecified in tasks configuration.")), __FILE__, __LINE__);} if (!isset($this->_params['hostspec'])) { Horde::fatal(new PEAR_Error(_("Required 'hostspec' notspecified in tasks configuration.")), __FILE__, __LINE__);} if (!isset($this->_params['username'])) { Horde::fatal(new PEAR_Error(_("Required 'username' notspecified in tasks configuration.")), __FILE__, __LINE__);} if (!isset($this->_params['password'])) { Horde::fatal(new PEAR_Error(_("Required 'password' notspecified in tasks configuration.")), __FILE__, __LINE__);} if (!isset($this->_params['database'])) { Horde::fatal(new PEAR_Error(_("Required 'database' notspecified in tasks configuration.")), __FILE__, __LINE__);} if (!isset($this->_params['domain_table'])) { Horde::fatal(new PEAR_Error(_("Required 'domain_table' notspecified in tasks configuration.")), __FILE__, __LINE__);} if (!isset($this->_params['dns_table'])) { Horde::fatal(new PEAR_Error(_("Required 'dns_table' notspecified 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();// stuffreturn 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 stuffreturn true; }} ?>