/surosql/SurosqlOO.class.php
PHP | 65 lines | 50 code | 14 blank | 1 comment | 6 complexity | 47c8166a96e49366896f8b8e2007177b MD5 | raw file
Possible License(s): LGPL-3.0, AGPL-1.0, GPL-2.0, LGPL-2.1
- <?php
- // version: 3.1.0
- namespace ns;
- class SurosqlOO {
- const ONLY_COLUMN_FIELDS = 0;
- const ALSO_NON_COLUMN_FIELDS = 1;
- function __construct($field_array = null) {
- if(is_array($field_array)) {
- $this->set_fields($field_array);
- }
- }
- function set_fields($field_array, $which_fields = self::ONLY_COLUMN_FIELDS) {
- if($which_fields == self::ONLY_COLUMN_FIELDS) {
- $oo = SurosqlOOManager::get_osql_inst($this)->get_obj_info($this);
- $field_array = array_intersect_key($field_array, array_flip($oo['columns']));
- }
- foreach($field_array as $name => $value) {
- $this->$name = $value;
- }
- return $this;
- }
- function update($fields = null, $values_unescaped = array()) {
- return SurosqlOOManager::update($this, $fields, $values_unescaped);
- }
- function insert($fields = null, $values_unescaped = array()) {
- return SurosqlOOManager::insert($this, $fields, $values_unescaped);
- }
- function replace($fields = null, $values_unescaped = array()) {
- return SurosqlOOManager::replace($this, $fields, $values_unescaped);
- }
- function insertorupdate($fields = null, $values_unescaped = array()) {
- return SurosqlOOManager::insertorupdate($this, $fields, $values_unescaped);
- }
- function delete() {
- return SurosqlOOManager::delete($this);
- }
- static function get($criteria = null) {
- $osql = SurosqlOOManager::get_osql_inst(get_called_class());
- $info = $osql->get_class_info(get_called_class());
- $query = $osql->fromoo($info['alias']);
- if(is_array($criteria)) {
- foreach($criteria as $field => $value) {
- $query->ifeq($field, $value);
- }
- } else if(!is_null($criteria)) {
- $query->ifeq($info['primary'], $criteria);
- }
- return $query;
- }
- }
- ?>