亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? adodb-active-record.inc.php

?? asterisk用 的voip記費軟件
?? PHP
字號:
<?php/*@version V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.  Latest version is available at http://adodb.sourceforge.net   Released under both BSD license and Lesser GPL library license.   Whenever there is any discrepancy between the two licenses,   the BSD license will take precedence.    Active Record implementation. Superset of Zend Framework's.    Version 0.07    See http://www-128.ibm.com/developerworks/java/library/j-cb03076/?ca=dgr-lnxw01ActiveRecord   	for info on Ruby on Rails Active Record implementation*/global $_ADODB_ACTIVE_DBS;global $ADODB_ACTIVE_CACHESECS; // set to true to enable caching of metadata such as field info// array of ADODB_Active_DB's, indexed by ADODB_Active_Record->_dbat$_ADODB_ACTIVE_DBS = array();class ADODB_Active_DB {	var $db; // ADOConnection	var $tables; // assoc array of ADODB_Active_Table objects, indexed by tablename}class ADODB_Active_Table {	var $name; // table name	var $flds; // assoc array of adofieldobjs, indexed by fieldname	var $keys; // assoc array of primary keys, indexed by fieldname	var $_created; // only used when stored as a cached file}// returns index into $_ADODB_ACTIVE_DBSfunction ADODB_SetDatabaseAdapter(&$db){	global $_ADODB_ACTIVE_DBS;			foreach($_ADODB_ACTIVE_DBS as $k => $d) {			if (PHP_VERSION >= 5) {				if ($d->db === $db) return $k;			} else {				if ($d->db->_connectionID === $db->_connectionID && $db->database == $d->db->database) 					return $k;			}		}				$obj = new ADODB_Active_DB();		$obj->db =& $db;		$obj->tables = array();				$_ADODB_ACTIVE_DBS[] = $obj;				return sizeof($_ADODB_ACTIVE_DBS)-1;}class ADODB_Active_Record {	var $_dbat; // associative index pointing to ADODB_Active_DB eg. $ADODB_Active_DBS[_dbat]	var $_table; // tablename, if set in class definition then use it as table name	var $_tableat; // associative index pointing to ADODB_Active_Table, eg $ADODB_Active_DBS[_dbat]->tables[$this->_tableat]	var $_where; // where clause set in Load()	var $_saved = false; // indicates whether data is already inserted.	var $_lasterr = false; // last error message	var $_original = false; // the original values loaded or inserted, refreshed on update		// should be static	function SetDatabaseAdapter(&$db) 	{		return ADODB_SetDatabaseAdapter($db);	}		// php4 constructor	function ADODB_Active_Record($table = false, $pkeyarr=false, $db=false)	{		ADODB_Active_Record::__construct($table,$pkeyarr,$db);	}		// php5 constructor	function __construct($table = false, $pkeyarr=false, $db=false)	{	global $ADODB_ASSOC_CASE,$_ADODB_ACTIVE_DBS;			if ($db == false && is_object($pkeyarr)) {			$db = $pkeyarr;			$pkeyarr = false;		}				if (!$table) { 			if (!empty($this->_table)) $table = $this->_table;			else $table = $this->_pluralize(get_class($this));		}		if ($db) {			$this->_dbat = ADODB_Active_Record::SetDatabaseAdapter($db);		} else			$this->_dbat = sizeof($_ADODB_ACTIVE_DBS)-1;						if ($this->_dbat < 0) $this->Error("No database connection set; use ADOdb_Active_Record::SetDatabaseAdapter(\$db)",'ADODB_Active_Record::__constructor');				$this->_table = $table;		$this->_tableat = $table; # reserved for setting the assoc value to a non-table name, eg. the sql string in future		$this->UpdateActiveTable($pkeyarr);	}		function __wakeup()	{  		$class = get_class($this);  		new $class;	}		function _pluralize($table)	{		$ut = strtoupper($table);		$len = strlen($table);		$lastc = $ut[$len-1];		$lastc2 = substr($ut,$len-2);		switch ($lastc) {		case 'S':			return $table.'es';			case 'Y':			return substr($table,0,$len-1).'ies';		case 'X':				return $table.'es';		case 'H': 			if ($lastc2 == 'CH' || $lastc2 == 'SH')				return $table.'es';		default:			return $table.'s';		}	}		//////////////////////////////////		// update metadata	function UpdateActiveTable($pkeys=false,$forceUpdate=false)	{	global $ADODB_ASSOC_CASE,$_ADODB_ACTIVE_DBS , $ADODB_CACHE_DIR, $ADODB_ACTIVE_CACHESECS;			$activedb =& $_ADODB_ACTIVE_DBS[$this->_dbat];		$table = $this->_table;		$tables = $activedb->tables;		$tableat = $this->_tableat;		if (!$forceUpdate && !empty($tables[$tableat])) {			$tobj =& $tables[$tableat];			foreach($tobj->flds as $name => $fld) 				$this->$name = null;			return;		}				$db =& $activedb->db;		$fname = $ADODB_CACHE_DIR . '/adodb_' . $db->databaseType . '_active_'. $table . '.cache';		if (!$forceUpdate && $ADODB_ACTIVE_CACHESECS && $ADODB_CACHE_DIR && file_exists($fname)) {			$fp = fopen($fname,'r');			@flock($fp, LOCK_SH);			$acttab = unserialize(fread($fp,100000));			fclose($fp);			if ($acttab->_created + $ADODB_ACTIVE_CACHESECS - (abs(rand()) % 16) > time()) { 				// abs(rand()) randomizes deletion, reducing contention to delete/refresh file				// ideally, you should cache at least 32 secs				$activedb->tables[$table] = $acttab;								//if ($db->debug) ADOConnection::outp("Reading cached active record file: $fname");			  	return;			} else if ($db->debug) {				ADOConnection::outp("Refreshing cached active record file: $fname");			}		}		$activetab = new ADODB_Active_Table();		$activetab->name = $table;						$cols = $db->MetaColumns($table);		if (!$cols) {			$this->Error("Invalid table name: $table",'UpdateActiveTable'); 			return false;		}		$fld = reset($cols);		if (!$pkeys) {			if (isset($fld->primary_key)) {				$pkeys = array();				foreach($cols as $name => $fld) {					if (!empty($fld->primary_key)) $pkeys[] = $name;				}			} else					$pkeys = $this->GetPrimaryKeys($db, $table);		}		if (empty($pkeys)) {			$this->Error("No primary key found for table $table",'UpdateActiveTable');			return false;		}				$attr = array();		$keys = array();				switch($ADODB_ASSOC_CASE) {		case 0:			foreach($cols as $name => $fldobj) {				$name = strtolower($name);				$this->$name = null;				$attr[$name] = $fldobj;			}			foreach($pkeys as $k => $name) {				$keys[strtolower($name)] = strtolower($name);			}			break;					case 1: 			foreach($cols as $name => $fldobj) {				$name = strtoupper($name);				$this->$name = null;				$attr[$name] = $fldobj;			}						foreach($pkeys as $k => $name) {				$keys[strtoupper($name)] = strtoupper($name);			}			break;		default:			foreach($cols as $name => $fldobj) {				$name = ($fldobj->name);				$this->$name = null;				$attr[$name] = $fldobj;			}			foreach($pkeys as $k => $name) {				$keys[$name] = $cols[$name]->name;			}			break;		}				$activetab->keys = $keys;		$activetab->flds = $attr;		if ($ADODB_ACTIVE_CACHESECS && $ADODB_CACHE_DIR) {			$activetab->_created = time();			$s = serialize($activetab);			if (!function_exists('adodb_write_file')) include(ADODB_DIR.'/adodb-csvlib.inc.php');			adodb_write_file($fname,$s);		}		$activedb->tables[$table] = $activetab;	}		function GetPrimaryKeys(&$db, $table)	{		return $db->MetaPrimaryKeys($table);	}		// error handler for both PHP4+5. 	function Error($err,$fn)	{	global $_ADODB_ACTIVE_DBS;			$fn = get_class($this).'::'.$fn;		$this->_lasterr = $fn.': '.$err;				if ($this->_dbat < 0) $db = false;		else {			$activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];			$db =& $activedb->db;		}				if (function_exists('adodb_throw')) {				if (!$db) adodb_throw('ADOdb_Active_Record', $fn, -1, $err, 0, 0, false);			else adodb_throw($db->databaseType, $fn, -1, $err, 0, 0, $db);		} else			if (!$db || $db->debug) ADOConnection::outp($this->_lasterr);			}		// return last error message	function ErrorMsg()	{		if (!function_exists('adodb_throw')) {			if ($this->_dbat < 0) $db = false;			else $db = $this->DB();					// last error could be database error too			if ($db && $db->ErrorMsg()) return $db->ErrorMsg();		}		return $this->_lasterr;	}		function ErrorNo() 	{		if ($this->_dbat < 0) return -9999; // no database connection...		$db = $this->DB();				return (int) $db->ErrorNo();	}	// retrieve ADOConnection from _ADODB_Active_DBs	function &DB()	{	global $_ADODB_ACTIVE_DBS;			if ($this->_dbat < 0) {			$false = false;			$this->Error("No database connection set: use ADOdb_Active_Record::SetDatabaseAdaptor(\$db)", "DB");			return $false;		}		$activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];		$db =& $activedb->db;		return $db;	}		// retrieve ADODB_Active_Table	function &TableInfo()	{	global $_ADODB_ACTIVE_DBS;			$activedb = $_ADODB_ACTIVE_DBS[$this->_dbat];		$table =& $activedb->tables[$this->_tableat];		return $table;	}		// set a numeric array (using natural table field ordering) as object properties	function Set(&$row)	{		$db =& $this->DB();				if (!$row) {			$this->_saved = false;					return false;		}				$this->_saved = true;				$table =& $this->TableInfo();		if (sizeof($table->flds) != sizeof($row)) {			$this->Error("Table structure of $this->_table has changed","Load");			return false;		}				$cnt = 0;		foreach($table->flds as $name=>$fld) {			$this->$name = $row[$cnt];			$cnt += 1;		}		$this->_original = $row;		return true;	}		// get last inserted id for INSERT	function LastInsertID(&$db,$fieldname)	{		if ($db->hasInsertID)			$val = $db->Insert_ID($this->_table,$fieldname);		else			$val = false;					if (is_null($val) || $val === false) {			// this might not work reliably in multi-user environment			return $db->GetOne("select max(".$fieldname.") from ".$this->_table);		}		return $val;	}		// quote data in where clause	function doquote(&$db, $val,$t)	{		switch($t) {		case 'D':		case 'T':			if (empty($val)) return 'null';					case 'C':		case 'X':			if (is_null($val)) return 'null';						if (strncmp($val,"'",1) != 0 && substr($val,strlen($val)-1,1) != "'") { 				return $db->qstr($val);				break;			}		default:			return $val;			break;		}	}		// generate where clause for an UPDATE/SELECT	function GenWhere(&$db, &$table)	{		$keys = $table->keys;		$parr = array();				foreach($keys as $k) {			$f = $table->flds[$k];			if ($f) {				$parr[] = $k.' = '.$this->doquote($db,$this->$k,$db->MetaType($f->type));			}		}		return implode(' and ', $parr);	}			//------------------------------------------------------------ Public functions below		function Load($where,$bindarr=false)	{		$db =& $this->DB(); if (!$db) return false;		$this->_where = $where;				$save = $db->SetFetchMode(ADODB_FETCH_NUM);		$row = $db->GetRow("select * from ".$this->_table.' WHERE '.$where,$bindarr);		$db->SetFetchMode($save);				return $this->Set($row);	}		// false on error	function Save()	{		if ($this->_saved) $ok = $this->Update();		else $ok = $this->Insert();				return $ok;	}		// false on error	function Insert()	{		$db =& $this->DB(); if (!$db) return false;		$cnt = 0;		$table =& $this->TableInfo();				$valarr = array();		$names = array();		$valstr = array();		foreach($table->flds as $name=>$fld) {			$val = $this->$name;			if(!is_null($val) || !array_key_exists($name, $table->keys)) {				$valarr[] = $val;				$names[] = $name;				$valstr[] = $db->Param($cnt);				$cnt += 1;			}		}				if (empty($names)){			foreach($table->flds as $name=>$fld) {				$valarr[] = null;				$names[] = $name;				$valstr[] = $db->Param($cnt);				$cnt += 1;			}		}		$sql = 'INSERT INTO '.$this->_table."(".implode(',',$names).') VALUES ('.implode(',',$valstr).')';		$ok = $db->Execute($sql,$valarr);				if ($ok) {			$this->_saved = true;			$autoinc = false;			foreach($table->keys as $k) {				if (is_null($this->$k)) {					$autoinc = true;					break;				}			}			if ($autoinc && sizeof($table->keys) == 1) {				$k = reset($table->keys);				$this->$k = $this->LastInsertID($db,$k);			}		}				$this->_original = $valarr;		return !empty($ok);	}		function Delete()	{		$db =& $this->DB(); if (!$db) return false;		$table =& $this->TableInfo();				$where = $this->GenWhere($db,$table);		$sql = 'DELETE FROM '.$this->_table.' WHERE '.$where;		$ok = $db->Execute($sql);				return $ok ? true : false;	}		// returns an array of active record objects	function &Find($whereOrderBy,$bindarr=false,$pkeysArr=false)	{		$db =& $this->DB(); if (!$db || empty($this->_table)) return false;		$arr =& $db->GetActiveRecordsClass(get_class($this),$this->_table, $whereOrderBy,$bindarr,$pkeysArr);		return $arr;	}		// returns 0 on error, 1 on update, 2 on insert	function Replace()	{	global $ADODB_ASSOC_CASE;				$db =& $this->DB(); if (!$db) return false;		$table =& $this->TableInfo();				$pkey = $table->keys;				foreach($table->flds as $name=>$fld) {			$val = $this->$name;			/*			if (is_null($val)) {				if (isset($fld->not_null) && $fld->not_null) {					if (isset($fld->default_value) && strlen($fld->default_value)) continue;					else {						$this->Error("Cannot update null into $name","Replace");						return false;					}				}			}*/			if (is_null($val) && !empty($fld->auto_increment)) {            	continue;            }			$t = $db->MetaType($fld->type);			$arr[$name] = $this->doquote($db,$val,$t);			$valarr[] = $val;		}				if (!is_array($pkey)) $pkey = array($pkey);						if ($ADODB_ASSOC_CASE == 0) 			foreach($pkey as $k => $v)				$pkey[$k] = strtolower($v);		elseif ($ADODB_ASSOC_CASE == 0) 			foreach($pkey as $k => $v)				$pkey[$k] = strtoupper($v);						$ok = $db->Replace($this->_table,$arr,$pkey);		if ($ok) {			$this->_saved = true; // 1= update 2=insert			if ($ok == 2) {				$autoinc = false;				foreach($table->keys as $k) {					if (is_null($this->$k)) {						$autoinc = true;						break;					}				}				if ($autoinc && sizeof($table->keys) == 1) {					$k = reset($table->keys);					$this->$k = $this->LastInsertID($db,$k);				}			}						$this->_original =& $valarr;		} 		return $ok;	}	// returns 0 on error, 1 on update, -1 if no change in data (no update)	function Update()	{		$db =& $this->DB(); if (!$db) return false;		$table =& $this->TableInfo();				$where = $this->GenWhere($db, $table);				if (!$where) {			$this->error("Where missing for table $table", "Update");			return false;		}		$valarr = array(); 		$neworig = array();		$pairs = array();		$i = -1;		$cnt = 0;		foreach($table->flds as $name=>$fld) {			$i += 1;			$val = $this->$name;			$neworig[] = $val;						if (isset($table->keys[$name])) {				continue;			}						if (is_null($val)) {				if (isset($fld->not_null) && $fld->not_null) {					if (isset($fld->default_value) && strlen($fld->default_value)) continue;					else {						$this->Error("Cannot set field $name to NULL","Update");						return false;					}				}			}						if (isset($this->_original[$i]) && $val == $this->_original[$i]) {				continue;			}						$valarr[] = $val;			$pairs[] = $name.'='.$db->Param($cnt);			$cnt += 1;		}						if (!$cnt) return -1;		$sql = 'UPDATE '.$this->_table." SET ".implode(",",$pairs)." WHERE ".$where;		$ok = $db->Execute($sql,$valarr);		if ($ok) {			$this->_original =& $neworig;			return 1;		}		return 0;	}		function GetAttributeNames()	{		$table =& $this->TableInfo();		if (!$table) return false;		return array_keys($table->flds);	}	};?>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品欧美久久久久一区二区| 国产精品久久久久毛片软件| 亚洲免费观看高清完整| 成人午夜视频福利| 国产精品青草综合久久久久99| 亚洲乱码日产精品bd| 色噜噜夜夜夜综合网| 欧美白人最猛性xxxxx69交| 久久99久国产精品黄毛片色诱| 91丨porny丨中文| 亚洲黄色av一区| 欧美一区二区在线播放| 免费av网站大全久久| 久久久噜噜噜久久人人看| 成人自拍视频在线观看| 欧美电影免费观看高清完整版| 成人免费在线播放视频| 欧美无乱码久久久免费午夜一区 | 97国产精品videossex| 亚洲特黄一级片| 欧美日韩免费在线视频| 美女一区二区久久| 中文在线一区二区| 91国产精品成人| 天堂一区二区在线| 国产欧美一区二区精品性色| 色哟哟精品一区| 1024国产精品| 91精品国产aⅴ一区二区| 国产精品综合二区| 久久精品夜夜夜夜久久| 色94色欧美sute亚洲13| 美女网站在线免费欧美精品| 亚洲视频中文字幕| 91免费版在线| 亚洲欧洲精品天堂一级| 91精品国产91久久久久久一区二区| 夜夜亚洲天天久久| 国产午夜亚洲精品理论片色戒| 精品一区二区三区在线观看国产| 日韩欧美国产小视频| 欧美aa在线视频| 2023国产一二三区日本精品2022| 亚洲综合男人的天堂| 日韩一级片网站| 成人免费的视频| 视频一区在线播放| 国产精品网站在线播放| 国产91综合网| 一二三四社区欧美黄| 欧美日韩精品一区二区| 国产精品羞羞答答xxdd| 国产精品天干天干在观线| 欧美日韩国产区一| 国产一区 二区| 午夜精品一区二区三区电影天堂 | 在线不卡欧美精品一区二区三区| 亚洲天堂久久久久久久| 欧美一区二区在线不卡| 9久草视频在线视频精品| 免费成人结看片| 日韩精品1区2区3区| 欧美高清在线一区二区| 制服丝袜中文字幕一区| 91亚洲国产成人精品一区二区三| 国产精品私人影院| 日韩一区二区影院| 久久成人综合网| 香蕉乱码成人久久天堂爱免费| 色狠狠av一区二区三区| 亚洲另类春色国产| 26uuu久久天堂性欧美| 91亚洲午夜精品久久久久久| proumb性欧美在线观看| 国产精品久99| 精品电影一区二区| 精品视频123区在线观看| av网站免费线看精品| 亚洲欧美偷拍卡通变态| 久久久久国色av免费看影院| 56国语精品自产拍在线观看| 乱中年女人伦av一区二区| 亚洲图片自拍偷拍| 亚洲男人的天堂一区二区| 久久精品亚洲精品国产欧美kt∨| av午夜精品一区二区三区| 国产精品1区2区| 国内精品国产三级国产a久久| 国产丝袜美腿一区二区三区| 久久免费午夜影院| 久久久精品国产免费观看同学| 99天天综合性| 91亚洲精华国产精华精华液| 天堂va蜜桃一区二区三区 | 国产一区二区三区在线观看免费视频| 欧美mv日韩mv国产| 7777精品伊人久久久大香线蕉经典版下载| 一区二区久久久久久| 亚洲精品高清在线观看| 亚洲免费观看高清完整版在线| 日韩一级在线观看| 日韩午夜在线播放| av一区二区三区黑人| 99re8在线精品视频免费播放| 亚洲成人资源在线| 亚洲大片精品永久免费| 日韩国产欧美一区二区三区| 天天影视涩香欲综合网| 国产三级久久久| 国产欧美日韩在线观看| 99精品国产99久久久久久白柏| 亚洲愉拍自拍另类高清精品| 精品国产91久久久久久久妲己| 在线视频中文字幕一区二区| 在线观看日韩毛片| 色综合久久88色综合天天| 777奇米四色成人影色区| 精品欧美黑人一区二区三区| 久久久久久久久岛国免费| 国产精品久久777777| 一区二区三区不卡视频| 免费在线观看视频一区| 国产美女久久久久| 日本va欧美va瓶| 国产suv精品一区二区6| 国产91精品精华液一区二区三区 | 久久99热狠狠色一区二区| 狠狠色丁香婷综合久久| 粉嫩在线一区二区三区视频| 97国产一区二区| 五月天欧美精品| 国产在线视频精品一区| 91精品黄色片免费大全| 99re6这里只有精品视频在线观看| 国产麻豆欧美日韩一区| 天天操天天色综合| 国产精品一区免费视频| 99在线精品观看| hitomi一区二区三区精品| 欧美三级电影网站| 国产色婷婷亚洲99精品小说| 一区二区在线观看不卡| 久久综合综合久久综合| 99久久99久久精品免费看蜜桃| 国产成人在线视频网站| 九色综合国产一区二区三区| av成人免费在线观看| 日韩一级成人av| 亚洲免费毛片网站| 国内外成人在线| 日韩精品一区二区三区四区| 亚洲日本在线看| 国产资源精品在线观看| 欧美三级中文字幕| 中文字幕精品三区| 中文字幕av资源一区| 日韩精品一级二级| 91麻豆国产精品久久| 精品粉嫩超白一线天av| 亚洲午夜电影网| 欧美日韩电影在线| 亚洲欧美经典视频| 成人免费va视频| 久久免费视频一区| 美女看a上一区| 欧美视频一区二区| 亚洲乱码国产乱码精品精98午夜| 亚洲午夜久久久| 成人黄色综合网站| 久久精品日产第一区二区三区高清版 | 99re成人精品视频| 欧美成人三级电影在线| 五月天欧美精品| 美女脱光内衣内裤视频久久网站 | 在线精品视频一区二区| 中文久久乱码一区二区| 国产真实乱对白精彩久久| 高清视频一区二区| 色综合天天做天天爱| 国产日韩欧美高清在线| 99热精品一区二区| 欧美国产精品劲爆| 国产精品系列在线观看| 26uuu国产电影一区二区| 毛片一区二区三区| 色婷婷激情综合| 亚洲一区二区四区蜜桃| 成人动漫一区二区| 亚洲国产岛国毛片在线| 岛国一区二区三区| 国产精品久久夜| 亚洲欧洲性图库| 国产麻豆精品theporn| 9l国产精品久久久久麻豆| 久久九九久精品国产免费直播| 亚洲欧美色一区| 成+人+亚洲+综合天堂| 亚洲女同一区二区| 不卡视频免费播放| 欧美视频在线观看一区|