php 数据库操作基础类DBObject Class
/* WORKS IN PHP5 ONLY */ class DBObject { private $id; private $id_field; private $table_name; private $fields = array(); function __construct($table_name, $id_field, $fields) { $this->table_name = $table_name; $this->id_field = $id_field; foreach($fields as $key) $this->fields[$key] = null; } function __get($key) { return $this->fields[$key]; } function __set($key, $value) { if(array_key_exists($key, $this->fields)) { $this->fields[$key] = $value; return true; } return false; } function select($id) { global $db; $db->query("SELECT * FROM " . $this->table_name . " WHERE " . $this->id_field . " = '$id'"); if(mysql_num_rows($db->result) == 0) return false; else { $this->id = $id; $row = mysql_fetch_array($db->result, MYSQL_ASSOC); foreach($row as $key => $val) $this->fields[$key] = $val; } } function insert() { global $db; unset($this->fields[$this->id_field]); $fields = join(", ", array_keys($this->fields)); $values = "'" . join("', '", $this->fields) . "'"; $db->query("INSERT INTO " . $this->table_name . " ($fields) VALUES ($values)"); $this->id = mysql_insert_id($db->db); return $this->id; } function update() { global $db; unset($this->fields[$this->id_field]); $arrStuff = array(); foreach($this->fields as $key => $val) $arrStuff[] = "$key = '$val'"; $stuff = implode(", ", $arrStuff); $db->query("UPDATE " . $this->table_name . " SET $stuff WHERE " . $this->id_field . " = '" . $this->id . "'"); return mysql_affected_rows($db->db); // Not always correct due to mysql update bug/feature } function delete() { global $db; $db->query("DELETE FROM " . $this->table_name . " WHERE " . $this->id_field . " = '" . $this->id . "'"); return mysql_affected_rows($db->db); } function empty_table() { global $db; $db->query("DELETE FROM " . $this->table_name); } } // // class Person extends DBObject // { // function __construct() // { // parent::__construct('person', 'person_id', array('name', 'eye_color', 'hair_color')); // } // } //