亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产精品亚洲第一区在线暖暖韩国| 亚洲欧美一区二区在线观看| 日韩精品国产欧美| 欧美日韩亚洲另类| 亚洲中国最大av网站| 欧美日韩一级视频| 日韩av不卡在线观看| 久久综合资源网| av午夜一区麻豆| 一区二区三区在线视频播放 | 亚洲一卡二卡三卡四卡| 欧美在线播放高清精品| 亚洲午夜电影网| 日韩一级片在线播放| 国产精品一级黄| 1024成人网色www| 91国模大尺度私拍在线视频| 性欧美疯狂xxxxbbbb| 精品国产1区2区3区| 成人av在线一区二区| 亚洲欧美视频在线观看视频| 欧美精品精品一区| 国产传媒日韩欧美成人| 一区二区三区自拍| 精品区一区二区| www.在线成人| 日韩高清电影一区| 国产精品麻豆欧美日韩ww| 欧美揉bbbbb揉bbbbb| 精品制服美女丁香| 亚洲欧美日韩电影| 日韩欧美第一区| 99久久er热在这里只有精品15| 午夜欧美视频在线观看| 久久久99精品免费观看| 欧美性感一区二区三区| 国产九色sp调教91| 午夜在线电影亚洲一区| 日本一区二区动态图| 欧美美女bb生活片| 成人午夜激情视频| 免费欧美高清视频| 亚洲精品日韩一| 久久精品在这里| 这里只有精品电影| 色av一区二区| 福利一区二区在线观看| 免费不卡在线观看| 一级特黄大欧美久久久| 久久久国产一区二区三区四区小说 | 成人av在线影院| 九色综合国产一区二区三区| 亚洲主播在线播放| 亚洲欧洲精品一区二区精品久久久| 欧美一级欧美三级在线观看| 99re视频精品| 福利视频网站一区二区三区| 老司机精品视频一区二区三区| 亚洲综合男人的天堂| 国产精品乱人伦| 久久精品男人的天堂| 日韩免费成人网| 欧美色综合网站| 欧美主播一区二区三区| 99久久精品国产毛片| 国产成人在线电影| 黄色精品一二区| 久久精品国产精品青草| 日本一不卡视频| 日韩制服丝袜先锋影音| 亚洲第一狼人社区| 亚洲不卡av一区二区三区| 一区二区三区中文字幕电影| 中文字幕欧美一区| 国产精品理论片| 国产精品国产自产拍在线| www国产亚洲精品久久麻豆| 日韩一区二区三区四区 | 丁香另类激情小说| 国产一区二区福利| 国产精品一二三四区| 国产成人免费视频网站| 国产成人无遮挡在线视频| 国产精品一区二区91| 成人在线一区二区三区| 成人激情小说乱人伦| 成人av集中营| 91一区二区三区在线观看| 成人av在线播放网址| 不卡一区二区在线| 99久久99精品久久久久久| 一本久道久久综合中文字幕 | 亚洲欧美日韩成人高清在线一区| 中文字幕中文乱码欧美一区二区| 中文字幕亚洲一区二区va在线| 综合久久给合久久狠狠狠97色| 亚洲欧美在线观看| 一区二区三区日韩欧美| 天天色综合天天| 国内欧美视频一区二区 | 国产精品99久久久久久似苏梦涵| 国产91色综合久久免费分享| 不卡av在线免费观看| 在线观看亚洲精品视频| 日韩免费成人网| 国产精品麻豆99久久久久久| 亚洲风情在线资源站| 六月婷婷色综合| av在线一区二区| 欧美精品tushy高清| 久久久噜噜噜久噜久久综合| 综合欧美亚洲日本| 欧美aa在线视频| 成人深夜在线观看| 欧美日韩精品一二三区| 久久精品视频免费观看| 一区二区三国产精华液| 极品销魂美女一区二区三区| jiyouzz国产精品久久| 在线播放日韩导航| 欧美国产视频在线| 性欧美疯狂xxxxbbbb| 成人一道本在线| 欧美一区二区在线免费播放| 国产欧美一区视频| 日本欧美在线观看| 99热精品国产| 精品欧美一区二区久久| 一区二区三区视频在线看| 久久国产精品色| 欧美在线啊v一区| 亚洲国产高清在线观看视频| 午夜久久电影网| 色综合久久精品| 久久精品免视看| 裸体在线国模精品偷拍| 91官网在线观看| 久久久久9999亚洲精品| 日av在线不卡| 欧美性生活影院| 中文字幕在线观看不卡| 国产在线精品一区二区三区不卡| 欧美日本一区二区在线观看| 中文字幕中文字幕中文字幕亚洲无线| 欧美aaa在线| 欧美日韩免费不卡视频一区二区三区| 中文字幕精品综合| 国产精品一区二区在线观看网站| 欧美日本国产一区| 一区二区三区欧美久久| 不卡的av电影在线观看| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲欧美中日韩| 大白屁股一区二区视频| 国产视频一区二区在线| 极品少妇一区二区| 精品国产乱子伦一区| 美女网站一区二区| 3d动漫精品啪啪| 一区二区在线观看免费视频播放| 国产91精品露脸国语对白| 久久久精品tv| 国产成人免费高清| 久久久久久久久蜜桃| 国产剧情av麻豆香蕉精品| www激情久久| 国产成人一级电影| 国产丝袜在线精品| 成人三级在线视频| 亚洲图片激情小说| 91蝌蚪国产九色| 亚洲欧美一区二区三区孕妇| 91国偷自产一区二区三区成为亚洲经典| 综合激情网...| 在线观看视频欧美| 图片区日韩欧美亚洲| 69堂精品视频| 国产精品中文有码| 久久亚洲综合色一区二区三区| 精品在线亚洲视频| 国产欧美精品一区二区三区四区| 成人免费观看视频| 亚洲欧美一区二区久久| 欧美精品在线一区二区三区| 日本伊人午夜精品| 久久久精品国产99久久精品芒果| 成人av网址在线| 亚洲国产日韩a在线播放| 欧美一区二区在线不卡| 国产一区二区三区精品视频| 国产精品美女久久久久久久久久久 | 91国偷自产一区二区使用方法| 亚洲丶国产丶欧美一区二区三区| 337p亚洲精品色噜噜噜| 久久99精品国产91久久来源| 国产精品私人影院| 欧美性大战久久久久久久 | 国内精品国产成人国产三级粉色| 国产亚洲福利社区一区| 色偷偷一区二区三区|