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

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

?? sqlitedbconnect.class.php

?? 架設ROSE私服必備之物 ROSE數據庫
?? PHP
字號:
<?php/*** Web based SQLite management* Class for manage connection to a user database* @package SQLiteManager* @author Fr閐閞ic HENNINOT* @version $Id: SQLiteDbConnect.class.php,v 1.32 2006/04/15 16:49:20 freddy78 Exp $ $Revision: 1.32 $*/class SQLiteDbConnect {		/**	* Database name	*	* @access private	* @var strig	*/	var $baseName;		/**	* Resource connection	* 	* @access public	* @var resource	*/	var $connId;		/**	* Result resource	* 	* @access public	* @var resource	*/	var $resId;		/**	* Error from connection to database	*	* @access public	* @var bool	*/	var $connError;		/**	* User defines function list	*	* @access public	* @var array	*/	var $functInfo;			/**	* Last query Execution Time (msec)	*	* @access public	* @var integer	*/	var $queryTime;		/**	* Information if the database is writable or not	* @access private	* @var boolean	*/	var $readOnly;		var $errorMessage;				/**	* Class constructor	*	* @access public	* @param string $base database name	*/	function SQLiteDbConnect($base){		$this->baseName = $base;		$this->readOnly = !is_writeable($base);		$this->connId = $GLOBALS['SQLiteFactory']->sqliteGetInstance($base);		if(is_object($this->connId)) $this->readOnly = $this->connId->isReadOnly();		return $this->connId;	}		/**	* return true if database is writeable	*	* @access public	*/	function isReadOnly(){		return $this->readOnly;	}	function isReadable(){		if(is_object($this->connId)) return true;		else return false;	}		/**	* Return database properties	*	* @access public	* @param string $type type of properties (table, view...)	*/	function getPropList($type){		$propList = array();		if($type!='Function'){			$from = 'FROM sqlite_master WHERE type='.quotes(strtolower($type)).' ORDER BY name;';			$queryCount = 'SELECT count(*) as nb ' . $from;						// disabled table disapear			$nbIntoItem = '';			while($nbIntoItem == '') {				$resCount = $this->connId->query($queryCount);				$nbIntoItem = $this->connId->fetch_single($resCount);			}			$query = 'SELECT name ' . $from;						$tabTempProp = $this->connId->array_query($query);			if(is_array($tabTempProp)) {				foreach($tabTempProp as $propInfo)				$propList[] = $propInfo['name'];			}		} else {			$query = 'SELECT funct_name FROM user_function WHERE (base_id='.$GLOBALS['dbsel'].' OR base_id IS NULL)';			if( $GLOBALS['db']->query($query) ){				while($ligne = $GLOBALS['db']->fetch_array(null, SQLITE_ASSOC)) $propList[] = $ligne['funct_name'];			}						}		return $propList;	}		/**	* Close connection to database	*	* @access public	*/	function close(){		$this->connId = null;		return;	}		/**	* Exec a query and return the resource result	*	* @access public	* @param string $query 	* @param bool $buffer	*/	function getResId($query, $buffer=true){		$time_start = microtime();		$this->resId = $this->connId->query($query, $buffer);		$this->queryTime = round((microtime() - $time_start) * 1000,2);		return $this->resId;			}		/**	* return array of result	*	* @access public	* @param string $type	*/	function getArray($type = ''){		if(is_resource($this->connId->resId) || is_object($this->connId->resId)){			$tabOut = array();			while($row = $this->connId->fetch_array(null, (($type=='')? SQLITE_ASSOC : $type ))) $tabOut[] = $row;			return $tabOut;		} else {			return false;		}	}		/**	* Manage ALTER TABLE, not exist in SQLite	* 	* @access public	* @param string $table Table name	* @param string $newDefinition SQL definition of CREATE TABLE	* @param array $oldColumn Array of all the column	* @param array $newColumn Array of all new column	*/	function alterTable($table, $newDefinition, $oldColumn, $newColumn, $nullToNotNull = array()){		// get the index definition		$queryIndex = "SELECT DISTINCT sql FROM sqlite_master WHERE tbl_name='".$table."' AND type='index' AND sql IS NOT NULL";		$listIndex = $GLOBALS['workDb']->connId->array_query($queryIndex);		$query[] = "BEGIN TRANSACTION;\n";		$query[] = "CREATE TEMPORARY TABLE SQLIteManager_backup AS SELECT * FROM ".brackets($table).";\n";		if(!empty($nullToNotNull)) {			foreach($nullToNotNull as $newNotNull) {				$query[] = "UPDATE SQLIteManager_backup SET ".$newNotNull."='' WHERE ".$newNotNull." IS NULL;";			}		}		$query[] = "DROP TABLE ".brackets($table).";\n";			$query[] = $newDefinition."\n";				$query[] = "INSERT INTO ".brackets($table)." (".implode(", ", $newColumn).") SELECT ".implode(", ", $oldColumn)." FROM SQLIteManager_backup;\n";		$query[] = "DROP TABLE SQLIteManager_backup;\n";		$query[] = "COMMIT TRANSACTION;\n";		$error = false;		foreach($query as $req) {			if(!$error && !$this->getResId($req)) {				$error = true;				$this->errorMessage = '<table style="color: red;"><tr><td>'.$GLOBALS['traduct']->get(9).' :</td><td>'.$this->connId->getError().'</td></tr>';				if($GLOBALS['phpSQLiteError'] != '') $this->errorMessage .= '<tr><td>&nbsp;</td><td>'.$GLOBALS['phpSQLiteError'].'</td></tr>';				$this->errorMessage .= '</table>';				$this->getResId("ROLLBACK TRANSACTION;");				return $error;			}		}		if(!$error && is_array($listIndex)){			foreach($listIndex as $indexSQL=>$tabSQL){				if(!$error && !$this->getResId($tabSQL['sql'])) {					$error = true;					$this->getResId("ROLLBACK TRANSACTION;");					return $error;				}			}		}		return $error;	}		/**	* Return properties of all user defined function	*	* @access public	*/	function getUDF(){		$query = 'SELECT id, base_id, funct_type, funct_name, funct_code, funct_final_code, funct_num_args FROM user_function WHERE (base_id='.$GLOBALS['dbsel'].' OR base_id IS NULL)';			if( $GLOBALS['db']->query($query) ){				while($ligne = $GLOBALS['db']->fetch_array(null, SQLITE_ASSOC)) $this->functInfo[$ligne['id']] = $ligne;			}		return $this->functInfo;				}		/**	* Insert user defines function in the executable context to use this in SQL	*	* @access public	*/	function includeUDF(){		$tabFunct = $this->getUDF();		if(!isset($GLOBALS["UDF_declared"])) $GLOBALS["UDF_declared"] = array(); 		if(is_array($tabFunct)){			foreach($tabFunct as $infoFunct){				switch($infoFunct['funct_type']){					case 1:	// function utilisateur standard						$code = $infoFunct['funct_code'];						$funcName = $this->_getPHPfunctionName($code);						if(!in_array($funcName, $GLOBALS["UDF_declared"]) && !function_exists($funcName)) {							$GLOBALS["UDF_declared"][] = $funcName;							$retEval = eval($code);						}						if($this->connId) $this->connId->create_function($infoFunct['funct_name'], $funcName, $infoFunct['funct_num_args']);						break;					case 2:	// function utilisateur d'aggregation						$codeStep = $infoFunct['funct_code'];						$codeFinal = $infoFunct['funct_final_code'];						$funcStepName = $this->_getPHPfunctionName($codeStep);						if(!in_array($funcStepName, $GLOBALS["UDF_declared"]) && !function_exists($funcStepName)) {							$GLOBALS["UDF_declared"][] = $funcStepName;												eval($codeStep);						}						$funcFinalName = $this->_getPHPfunctionName($codeFinal);						if(!in_array($funcFinalName, $GLOBALS["UDF_declared"]) && !function_exists($funcFinalName)) {							$GLOBALS["UDF_declared"][] = $funcFinalName;												eval($codeFinal);						}						if($this->connId) $this->connId->create_aggregate ($infoFunct['funct_name'], $this->_getPHPfunctionName($codeStep), $this->_getPHPfunctionName($codeFinal), $infoFunct['funct_num_args']);						break;				}			}		}	}		/**	* Retreive function name from PHP code	*	* @access private	* @param string $code PHP code	*/	function _getPHPfunctionName($code){		preg_match("|function[ ]+(.*)[\(](.*)[\)]|U", $code, $value);		return trim($value[1]);			}		/**	* Escape string To SQLite	*	* @access public	* @param string $string	*/	function formatString($string){		return @$this->connId->escape(stripslashes($string));	}		/**	* Get attach database list	*	* @access public	*/	function getAttachDb(){		$query = '	SELECT attachment.id AS ATID, attach_id, location, name 					FROM attachment 						LEFT JOIN database ON database.id=attachment.attach_id 					WHERE base_id='.$GLOBALS['dbsel'];		$tabAttach = $GLOBALS['db']->array_query($query, SQLITE_ASSOC);		$tabout = array();		foreach($tabAttach as $infoAttach) {		  //fix when one db attached more than one time		  if(isset($tabout[$infoAttach['attach_id']]))		  	while (count($tabout[$infoAttach['attach_id']])) $infoAttach['attach_id'].=' ';		  			$tabout[$infoAttach['attach_id']]['id'] 		= $infoAttach['ATID'];			$tabout[$infoAttach['attach_id']]['location'] 	= $infoAttach['location'];			$tabout[$infoAttach['attach_id']]['name'] 		= $infoAttach['name'];		}		return $tabout;	}		/**	 *	 */	function copyTable($source, $destination, $copy = true){		if(strpos($source, ".")){			list($srcDb, $srcTable) 	= explode('.', $source);		} else {			$srcDb = "";			$srcTable = $source;		}		if(strpos($destination, ".")){			list($dstDb, $dstable) 		= explode('.', $destination);		} else {			$dstDb = "";			$dstable = $destination;		}				$res = $GLOBALS['workDb']->getResId('PRAGMA table_info('.brackets($srcTable).');');		$infoTable = $GLOBALS['workDb']->getArray();			foreach($infoTable as $iT) $listField[$iT["cid"]] = $iT["name"];				// backup table schema		$backupSchema = $GLOBALS['workDb']->connId->array_query("SELECT sql FROM sqlite_master WHERE tbl_name LIKE '".$srcTable."' ORDER BY ROWID", SQLITE_ASSOC);		if($dstDb) {			// create an instance on this			$GLOBALS["db"]->query("SELECT location FROM database WHERE name='".$dstDb."'");			$dbLocation = $GLOBALS["db"]->fetch_single();			if(dirname($dbLocation) == '.') $dbLocation = DEFAULT_DB_PATH . $dbLocation;			$tempDb = &new SQLiteDbConnect($dbLocation);			$query[] = "ATTACH DATABASE \"".$dbLocation."\" AS \"".$dstDb."\";\n";		}		$query[] = "BEGIN TRANSACTION;\n";		$query[] = "CREATE TABLE SQLIteManager_backup AS SELECT * FROM ".brackets($srcTable).";\n";				if(isset($_REQUEST["dropTable"]) && ($_REQUEST["dropTable"]=="true")){			$res = $GLOBALS["workDb"]->connId->query("SELECT count(*) FROM sqlite_master WHERE name='".brackets($dstable)."'");			if($exist = $GLOBALS["workDb"]->connId->fetch_single()) $query[] = "DROP TABLE ".brackets($dstable).";\n";		}						if(!$copy) $query[] = "DROP TABLE ".brackets($srcTable).";\n";			if(!$copy || ($copy && (($_REQUEST["whatToDo"]=="structure") || ($_REQUEST["whatToDo"]=="data"))) ) {			foreach($backupSchema as $schema) {				$tempQuery = $schema["sql"];				if(isset($tempQuery) && eregi("CREATE[[:space:]]TABLE", $tempQuery)) {					$tempQuery = ereg_replace("CREATE[[:space:]]TABLE[[:space:]]".$srcTable, "CREATE TABLE ".brackets($dstable), $tempQuery);					if($dstDb) {						if(isset($_REQUEST["dropTable"]) && ($_REQUEST["dropTable"]=="true")){							// check if table exist and drop it							$res = $tempDb->connId->query("SELECT count(*) FROM sqlite_master WHERE name='".brackets($dstable)."'");							$exist = $tempDb->connId->fetch_single();							if($exist) $query[] = "DROP TABLE ".brackets($dstable);						}						$tempDb->connId->query($tempQuery);						print_r($tempDb->connId);						unset($tempQuery);					}				}								if(isset($tempQuery) && eregi("[[:space:]]INTO[[:space:]]", $tempQuery)) {					$tempQuery = eregi_replace("^[[:space:]]INTO[[:space:]]".$srcTable, " INTO ".$destination, $tempQuery);							}								if(isset($tempQuery) && eregi("CREATE[[:space:]]TRIGGER[[:space:]]", $tempQuery)) unset($tempQuery);					if(isset($tempQuery) && $tempQuery) $query[] = $tempQuery;			}		}		if(!$copy || ($copy && (($_REQUEST["whatToDo"]=="data") || ($_REQUEST["whatToDo"]=="dataonly"))) )			$query[] = "INSERT INTO ".brackets($destination)." (".implode(", ", $listField).") SELECT ".implode(", ", $listField)." FROM SQLIteManager_backup;\n";		$query[] = "DROP TABLE SQLIteManager_backup;\n";		$query[] = "COMMIT TRANSACTION;\n";		$noerror = false;		foreach($query as $req){			if(!$noerror) {				if(!$this->connId->query($req) && !$this->connId->getError()) $noerror = true;			}		}		return $noerror;			}}?>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99国产精品久久99果冻传媒| 久久免费看少妇高潮| 国内精品伊人久久久久av一坑| 亚洲综合激情小说| 专区另类欧美日韩| 国产精品久久久久久久久久久免费看 | 国产一区高清在线| 韩国女主播一区| 国产一区二区三区高清播放| 国内精品嫩模私拍在线| 美女mm1313爽爽久久久蜜臀| 日本va欧美va精品| 麻豆国产欧美一区二区三区| 裸体歌舞表演一区二区| 激情五月激情综合网| 国产精品综合二区| 成人久久18免费网站麻豆| 91麻豆国产在线观看| 91福利精品视频| 日韩欧美专区在线| 国产亚洲综合色| 亚洲欧美激情插 | 久久影院视频免费| 亚洲国产精品v| 亚洲影视在线播放| 免费久久精品视频| gogogo免费视频观看亚洲一| 色av综合在线| 国产尤物一区二区在线| 成人av一区二区三区| 91精品91久久久中77777| 日韩一级大片在线| 国产精品久久99| 午夜精品影院在线观看| 国产高清视频一区| 在线观看视频欧美| 2023国产精品视频| 亚洲日本乱码在线观看| 男人的天堂久久精品| aa级大片欧美| 精品国精品自拍自在线| 亚洲四区在线观看| 狠狠狠色丁香婷婷综合激情| 色婷婷久久综合| 久久婷婷国产综合国色天香 | 亚洲成人av免费| 韩国一区二区三区| 欧美三级中文字| 亚洲少妇中出一区| 极品尤物av久久免费看| 色av成人天堂桃色av| 青草国产精品久久久久久| 国产999精品久久| 欧亚一区二区三区| 91精品国产日韩91久久久久久| 国产香蕉久久精品综合网| 亚洲第一成年网| eeuss国产一区二区三区| 精品国产欧美一区二区| 日韩av中文在线观看| 欧美私模裸体表演在线观看| 亚洲四区在线观看| 97久久精品人人爽人人爽蜜臀| 久久综合丝袜日本网| 男男gaygay亚洲| 欧美美女黄视频| 亚洲一区二区在线免费观看视频| 99久久精品99国产精品| 国产三区在线成人av| 激情综合亚洲精品| 精品日韩成人av| 激情五月激情综合网| 欧美变态凌虐bdsm| 麻豆91在线观看| 欧美日韩大陆一区二区| 午夜精品福利在线| 884aa四虎影成人精品一区| 视频一区二区中文字幕| 正在播放一区二区| 青青青伊人色综合久久| 91精品国产91综合久久蜜臀| 亚洲国产人成综合网站| 欧美在线免费观看视频| 亚洲午夜免费视频| 欧美日韩国产综合一区二区三区| 一区二区三区日韩在线观看| 欧洲激情一区二区| 亚洲第一久久影院| 日韩欧美国产电影| 极品少妇xxxx精品少妇| 国产人妖乱国产精品人妖| 菠萝蜜视频在线观看一区| 国产精品乱人伦一区二区| 色婷婷久久一区二区三区麻豆| 亚洲国产精品一区二区尤物区| 在线电影欧美成精品| 精品一区在线看| 国产精品理伦片| 在线影视一区二区三区| 老色鬼精品视频在线观看播放| 国产亚洲福利社区一区| 在线观看亚洲专区| 国产原创一区二区三区| 樱桃国产成人精品视频| 日韩一区二区视频| 成人午夜av在线| 婷婷久久综合九色综合绿巨人 | 精品精品欲导航| 成人丝袜高跟foot| 亚洲一区二区三区四区中文字幕| 91精品国产一区二区三区| 高清视频一区二区| 亚洲成人一区在线| 久久精品一区二区| 欧美日韩国产成人在线免费| 国产在线精品国自产拍免费| 一区二区免费视频| 久久久午夜精品| 欧美美女视频在线观看| 丁香一区二区三区| 男女性色大片免费观看一区二区| 国产精品女人毛片| 51精品国自产在线| 色婷婷综合久色| 国产成人精品1024| 久久97超碰色| 日韩激情视频网站| 亚洲黄网站在线观看| 久久精品视频免费| 在线综合视频播放| 色婷婷激情久久| 成人国产亚洲欧美成人综合网| 奇米影视在线99精品| 亚洲精品视频一区| 国产精品久久久久永久免费观看| 日韩精品自拍偷拍| 欧美日韩色综合| 97久久久精品综合88久久| 国产不卡在线播放| 久久99国内精品| 久久成人精品无人区| 婷婷久久综合九色国产成人| 亚洲免费大片在线观看| 国产精品美女久久久久久久 | 亚洲午夜精品网| 亚洲国产岛国毛片在线| 2023国产精品自拍| 26uuu国产在线精品一区二区| 日韩亚洲欧美中文三级| 欧美色综合影院| 欧美主播一区二区三区| 色一情一乱一乱一91av| 97超碰欧美中文字幕| 成人综合激情网| 成人蜜臀av电影| 91免费国产视频网站| 色婷婷av一区二区三区软件| 色综合久久久网| 精品视频免费在线| 在线播放欧美女士性生活| 日韩欧美一区中文| 26uuu亚洲| 国产精品久99| 一区二区三区av电影 | 黄网站免费久久| 蜜臀av在线播放一区二区三区| 日韩欧美在线综合网| 精品久久久久久久人人人人传媒| 日韩欧美国产精品| 久久精品人人做| 亚洲人xxxx| 日韩影院精彩在线| 裸体在线国模精品偷拍| 国产老肥熟一区二区三区| av中文字幕亚洲| 欧美丰满一区二区免费视频| 欧美精品一区二区三区一线天视频 | 国产91丝袜在线播放| 99精品久久免费看蜜臀剧情介绍| 99久久综合狠狠综合久久| 在线亚洲一区二区| 7777女厕盗摄久久久| 国产亚洲短视频| 亚洲午夜免费电影| 黄色日韩网站视频| 色狠狠桃花综合| 欧美成人一区二区三区片免费| 欧美国产日本视频| 偷拍自拍另类欧美| 丁香激情综合五月| 欧美少妇一区二区| 国产欧美精品区一区二区三区| 亚洲精品国产视频| 国产剧情一区在线| 欧美肥妇free| 亚洲日本电影在线| 国产裸体歌舞团一区二区| 在线欧美日韩精品| 国产日产欧美一区| 青青草97国产精品免费观看 |