dop_conn = mysql_connect("host", "login", "password"); $this->dop_tableName = $tableName; $this->dop_pk = $pk; $this->dop_className = 'DO_' . $tableName; } public function setField($name, $value) { if ($this->isValidProperty($name)){ $this->$name = $value; } } public function setMD5Field($name, $value) { if ($this->isValidProperty($name)){ $this->$name = md5($value); } } public function getField($name) { return $this->$name; } // This function will perform a select on the table looking for a specific userId. public function get($id) { $sql = "SELECT * FROM " . $this->dop_tableName . " WHERE " . $this->dop_pk . "='" . mysql_escape_string($id) . "'"; $rs = mysql_query($sql); $row = mysql_fetch_array($rs); while (list($fieldName, $fieldVal) = each($row)){ $this->$fieldName = $fieldVal; } } public function insert() { $setClause = array(); $sql = "INSERT INTO " . $this->dop_tableName; //$class = new ReflectionClass($this->dop_className); $class = new ReflectionClass($this->dop_className); $properties = $class->getProperties(); for ($i = 0; $i < count($properties); $i++){ $name = $properties[$i]->getName(); if ($this->isValidProperty($name)){ $setClause[] = "`" . $name . "`='" . mysql_escape_string($this->$name) . "'"; } } if (count($setClause) > 0){ $sql .= " SET " . implode(',', $setClause); } mysql_query($sql, $this->dop_conn); //echo 'ID: ' . mysql_insert_id($this->dop_conn); //echo 'PK Name: ' . $this->dop_pk; $this->{$this->dop_pk} = mysql_insert_id($this->dop_conn); } public function update() { $sql = "UPDATE " . $this->dop_tableName; //$class = new ReflectionClass($this->dop_className); $class = new ReflectionClass($this->dop_className); $properties = $class->getProperties(); for ($i = 0; $i < count($properties); $i++){ $name = $properties[$i]->getName(); if ($this->isValidProperty($name)){ $setClause[] = "`" . $name . "`='" . mysql_escape_string($this->$name) . "'"; } } if (count($setClause) > 0){ $sql .= " SET " . implode(',', $setClause); $sql .= " WHERE " . $this->dop_pk . "=" . mysql_escape_string($this->{$this->dop_pk}); mysql_query($sql); } } public function delete() { $sql = "DELETE FROM " . $this->dop_tableName . " WHERE " . $this->dop_pk . "=" . mysql_escape_string($this->{$this->dop_pk}); mysql_query($sql); } public function find() { $sql = "SELECT * FROM " . $this->dop_tableName; $where = array(); //$class = new ReflectionClass($this->dop_className); $class = new ReflectionClass($this->dop_className); $properties = $class->getProperties(); for ($i = 0; $i < count($properties); $i++){ $name = $properties[$i]->getName(); if ($this->$name != '' && $this->isValidProperty($name)){ $where[] = "`" . $name . "`='" . mysql_escape_string($this->$name) . "'"; } } if (count($where) > 0){ $sql .= " WHERE " . implode(' AND ', $where); } $rs = mysql_query($sql); include_once('class-ReadOnlyResultSet.php'); return new ReadOnlyResultSet($rs); } private function isValidProperty($name) { if ($name == 'dop_config' || $name == 'dop_pk' || $name == 'dop_tableName' || $name == 'dop_className'){ return false; } else { return true; } } private function getConnection() { return $this->dop_conn; } } ?>