亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产91富婆露脸刺激对白| 欧美日韩一区成人| 成人av在线资源网| 日本高清视频一区二区| 日韩一区二区精品| 99久久精品国产导航| 欧美日韩大陆在线| 国产欧美一区二区三区在线老狼| 久久综合99re88久久爱| 亚洲精品中文字幕乱码三区| 久久99久久精品欧美| 91亚洲国产成人精品一区二三| 欧美精品欧美精品系列| 精品国产成人系列| 亚洲精品乱码久久久久久黑人| 日韩高清在线观看| 成人看片黄a免费看在线| 91精品婷婷国产综合久久竹菊| 国产日产欧美一区| 最新中文字幕一区二区三区 | 精品久久国产老人久久综合| 色综合视频一区二区三区高清| 一本高清dvd不卡在线观看| av午夜一区麻豆| 成人欧美一区二区三区白人| 国产一区二区毛片| 欧美韩日一区二区三区四区| 国产一区不卡视频| 丝袜诱惑亚洲看片| 欧美日本高清视频在线观看| 国产成人精品亚洲777人妖 | 无码av中文一区二区三区桃花岛| 欧美电影免费观看高清完整版 | 香蕉加勒比综合久久| av一区二区不卡| 国产精品久久久久一区二区三区共 | va亚洲va日韩不卡在线观看| 亚洲欧洲av一区二区三区久久| 99re成人在线| 奇米一区二区三区| 综合自拍亚洲综合图不卡区| 精品国产第一区二区三区观看体验| 欧美亚洲综合色| 性做久久久久久| 久久99热99| 亚洲一区二区成人在线观看| 国产欧美va欧美不卡在线| 91传媒视频在线播放| 成人av在线一区二区| 在线看日本不卡| 久久日一线二线三线suv| 综合色天天鬼久久鬼色| 午夜av一区二区| 欧美精品一级二级三级| 日本亚洲一区二区| 精品久久久久av影院| 高清beeg欧美| 一区二区在线观看免费视频播放| 欧美日本高清视频在线观看| 国产一区二区剧情av在线| 国产精品剧情在线亚洲| 欧美午夜在线一二页| 韩国一区二区视频| 一区二区三区自拍| 精品国产不卡一区二区三区| 91小视频免费观看| 喷白浆一区二区| 国产精品天美传媒沈樵| 91精品欧美综合在线观看最新| 国内精品伊人久久久久av一坑 | 亚洲一区视频在线观看视频| 欧美一区二区视频免费观看| 成人免费毛片片v| 免费成人性网站| 亚洲免费在线电影| 精品粉嫩超白一线天av| 91久久精品一区二区三区| 久久精品国产免费看久久精品| 中文字幕佐山爱一区二区免费| 91精品视频网| 在线观看成人免费视频| 国模少妇一区二区三区| 亚洲午夜精品在线| 国产精品久线在线观看| 日韩欧美高清在线| 欧美亚洲丝袜传媒另类| 国产成人在线免费观看| 日本中文字幕一区二区视频 | 成人美女视频在线观看18| 视频在线观看91| 亚洲精选一二三| 中文字幕高清一区| 精品剧情v国产在线观看在线| 在线观看国产91| 91一区二区三区在线播放| 极品尤物av久久免费看| 日韩黄色小视频| 亚洲国产婷婷综合在线精品| 日韩理论片在线| 中文子幕无线码一区tr| 久久综合五月天婷婷伊人| 日韩欧美一级精品久久| 欧美日韩美少妇| 色悠久久久久综合欧美99| 国产九九视频一区二区三区| 蜜臀久久99精品久久久画质超高清| 亚洲另类在线一区| 亚洲男帅同性gay1069| 国产精品麻豆网站| 国产精品成人免费在线| 国产精品人成在线观看免费| 国产日韩欧美a| 久久精品综合网| 久久久久久久性| 中文字幕av一区二区三区| 国产欧美视频一区二区三区| 337p日本欧洲亚洲大胆精品| 精品女同一区二区| 精品国产凹凸成av人网站| 久久一区二区视频| 久久一留热品黄| 国产欧美一区二区精品性色| 欧美激情中文字幕| **欧美大码日韩| 亚洲一二三四在线观看| 性做久久久久久免费观看| 日韩精品亚洲一区| 蜜桃91丨九色丨蝌蚪91桃色| 久久99国产精品麻豆| 国产mv日韩mv欧美| av一本久道久久综合久久鬼色| 97se狠狠狠综合亚洲狠狠| 欧美视频三区在线播放| 日韩免费看的电影| 久久久蜜臀国产一区二区| 中文字幕在线观看一区| 亚洲国产精品一区二区www | 首页国产丝袜综合| 麻豆精品国产91久久久久久| 国产麻豆视频一区| 91视视频在线观看入口直接观看www| 欧美伊人久久久久久午夜久久久久| 欧美精品日日鲁夜夜添| 久久久久久久久久久电影| 1区2区3区国产精品| 丝袜亚洲另类欧美综合| 国产成人精品aa毛片| 欧美做爰猛烈大尺度电影无法无天| 欧美一区二区三区免费| 国产欧美日韩精品在线| 亚洲五月六月丁香激情| 激情五月婷婷综合| 91久久久免费一区二区| 久久一区二区视频| 亚洲午夜一二三区视频| 国产成人99久久亚洲综合精品| 在线观看亚洲专区| 久久尤物电影视频在线观看| 亚洲国产日韩a在线播放性色| 国产一区二区视频在线播放| 欧美吞精做爰啪啪高潮| 久久久91精品国产一区二区精品 | 一本大道久久a久久精二百| 欧美xxxxx裸体时装秀| 亚洲午夜国产一区99re久久| 国产成人精品亚洲777人妖| 91精品国模一区二区三区| 国产精品少妇自拍| 精品在线观看免费| 欧美精品日韩一区| 亚洲精品五月天| www.亚洲精品| 久久伊99综合婷婷久久伊| 日韩不卡一二三区| 在线观看欧美日本| 亚洲男女毛片无遮挡| 国产成人久久精品77777最新版本| 在线不卡中文字幕播放| 一区二区三区小说| 成人久久18免费网站麻豆 | 日韩欧美色综合| 亚洲午夜成aⅴ人片| 99久久免费国产| 国产视频911| 国产一区在线不卡| 日韩欧美国产三级电影视频| 亚洲综合色噜噜狠狠| 91天堂素人约啪| 中文字幕欧美日本乱码一线二线| 久久精品国产一区二区| 欧美一区二区三区在| 日韩电影在线免费观看| 久久久久国产精品麻豆| 奇米在线7777在线精品| 在线不卡a资源高清| 亚洲电影第三页| 91.com在线观看| 日本怡春院一区二区| 在线播放/欧美激情| 日韩在线一区二区|