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

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

?? adodb-postgres64.inc.php

?? 一個bug追蹤工具的PHP編寫的源代碼
?? PHP
?? 第 1 頁 / 共 2 頁
字號:
			}			// dannym			// 5 hasdefault; 6 num-of-column			$fld->has_default = ($rs->fields[5] == 't');			if ($fld->has_default) {				$fld->default_value = $rsdefa[$rs->fields[6]];			}			//Freek			if ($rs->fields[4] == $this->true) {				$fld->not_null = true;			}			// Freek			if (is_array($keys)) {				foreach($keys as $key) {					if ($fld->name == $key['column_name'] AND $key['primary_key'] == $this->true)						$fld->primary_key = true;					if ($fld->name == $key['column_name'] AND $key['unique_key'] == $this->true)						$fld->unique = true; // What name is more compatible?				}			}			if ($ADODB_FETCH_MODE == ADODB_FETCH_NUM) $retarr[] = $fld;			else $retarr[($normalize) ? strtoupper($fld->name) : $fld->name] = $fld;			$rs->MoveNext();		}		$rs->Close();		return $retarr;	}	  function &MetaIndexes ($table, $primary = FALSE)      {         global $ADODB_FETCH_MODE;				$schema = false;				$this->_findschema($table,$schema);				if ($schema) { // requires pgsql 7.3+ - pg_namespace used.					$sql = 'SELECT c.relname as "Name", i.indisunique as "Unique", i.indkey as "Columns"FROM pg_catalog.pg_class cJOIN pg_catalog.pg_index i ON i.indexrelid=c.oidJOIN pg_catalog.pg_class c2 ON c2.oid=i.indrelid	,pg_namespace nWHERE (c2.relname=\'%s\' or c2.relname=lower(\'%s\')) and c.relnamespace=c2.relnamespace and c.relnamespace=n.oid and n.nspname=\'%s\' AND i.indisprimary=false';				} else {	                $sql = 'SELECT c.relname as "Name", i.indisunique as "Unique", i.indkey as "Columns"FROM pg_catalog.pg_class cJOIN pg_catalog.pg_index i ON i.indexrelid=c.oidJOIN pg_catalog.pg_class c2 ON c2.oid=i.indrelidWHERE c2.relname=\'%s\' or c2.relname=lower(\'%s\')';    			}                if ($primary == FALSE) {                	$sql .= ' AND i.indisprimary=false;';                }                $save = $ADODB_FETCH_MODE;                $ADODB_FETCH_MODE = ADODB_FETCH_NUM;                if ($this->fetchMode !== FALSE) {                        $savem = $this->SetFetchMode(FALSE);                }                $rs = $this->Execute(sprintf($sql,$table,$table,$schema));                if (isset($savem)) {                        $this->SetFetchMode($savem);                }                $ADODB_FETCH_MODE = $save;                if (!is_object($rs)) {                	$false = false;					return $false;                }                $col_names = $this->MetaColumnNames($table,true);                $indexes = array();                while ($row = $rs->FetchRow()) {                        $columns = array();                        foreach (explode(' ', $row[2]) as $col) {                                $columns[] = $col_names[$col - 1];                        }                        $indexes[$row[0]] = array(                                'unique' => ($row[1] == 't'),                                'columns' => $columns                        );                }                return $indexes;        }	// returns true or false	//	// examples:	// 	$db->Connect("host=host1 user=user1 password=secret port=4341");	// 	$db->Connect('host1','user1','secret');	function _connect($str,$user='',$pwd='',$db='',$ctype=0)	{		if (!function_exists('pg_pconnect')) return null;		$this->_errorMsg = false;		if ($user || $pwd || $db) {			$user = adodb_addslashes($user);			$pwd = adodb_addslashes($pwd);			if (strlen($db) == 0) $db = 'template1';			$db = adodb_addslashes($db);		   	if ($str)  {			 	$host = split(":", $str);				if ($host[0]) $str = "host=".adodb_addslashes($host[0]);				else $str = 'host=localhost';				if (isset($host[1])) $str .= " port=$host[1]";			}		   		if ($user) $str .= " user=".$user;		   		if ($pwd)  $str .= " password=".$pwd;				if ($db)   $str .= " dbname=".$db;		}		//if ($user) $linea = "user=$user host=$linea password=$pwd dbname=$db port=5432";		if ($ctype === 1) { // persistent			$this->_connectionID = pg_pconnect($str);		} else {			if ($ctype === -1) { // nconnect, we trick pgsql ext by changing the connection str			static $ncnt;				if (empty($ncnt)) $ncnt = 1;				else $ncnt += 1;				$str .= str_repeat(' ',$ncnt);			}			$this->_connectionID = pg_connect($str);		}		if ($this->_connectionID === false) return false;		$this->Execute("set datestyle='ISO'");		return true;	}	function _nconnect($argHostname, $argUsername, $argPassword, $argDatabaseName)	{	 	return $this->_connect($argHostname, $argUsername, $argPassword, $argDatabaseName,-1);	}	// returns true or false	//	// examples:	// 	$db->PConnect("host=host1 user=user1 password=secret port=4341");	// 	$db->PConnect('host1','user1','secret');	function _pconnect($str,$user='',$pwd='',$db='')	{		return $this->_connect($str,$user,$pwd,$db,1);	}	// returns queryID or false	function _query($sql,$inputarr)	{		if ($inputarr) {		/*			It appears that PREPARE/EXECUTE is slower for many queries.			For query executed 1000 times:			"select id,firstname,lastname from adoxyz				where firstname not like ? and lastname not like ? and id = ?"			with plan = 1.51861286163 secs			no plan =   1.26903700829 secs		*/			$plan = 'P'.md5($sql);			$execp = '';			foreach($inputarr as $v) {				if ($execp) $execp .= ',';				if (is_string($v)) {					if (strncmp($v,"'",1) !== 0) $execp .= $this->qstr($v);				} else {					$execp .= $v;				}			}			if ($execp) $exsql = "EXECUTE $plan ($execp)";			else $exsql = "EXECUTE $plan";			$rez = @pg_exec($this->_connectionID,$exsql);			if (!$rez) {			# Perhaps plan does not exist? Prepare/compile plan.				$params = '';				foreach($inputarr as $v) {					if ($params) $params .= ',';					if (is_string($v)) {						$params .= 'VARCHAR';					} else if (is_integer($v)) {						$params .= 'INTEGER';					} else {						$params .= "REAL";					}				}				$sqlarr = explode('?',$sql);				//print_r($sqlarr);				$sql = '';				$i = 1;				foreach($sqlarr as $v) {					$sql .= $v.' $'.$i;					$i++;				}				$s = "PREPARE $plan ($params) AS ".substr($sql,0,strlen($sql)-2);				//adodb_pr($s);				pg_exec($this->_connectionID,$s);				echo $this->ErrorMsg();			}			$rez = pg_exec($this->_connectionID,$exsql);		} else {			$this->_errorMsg = false;			//adodb_backtrace();			$rez = pg_exec($this->_connectionID,$sql);		}		// check if no data returned, then no need to create real recordset		if ($rez && pg_numfields($rez) <= 0) {			if (is_resource($this->_resultid) && get_resource_type($this->_resultid) === 'pgsql result') {				pg_freeresult($this->_resultid);			}			$this->_resultid = $rez;			return true;		}		return $rez;	}	/*	Returns: the last error message from previous database operation	*/	function ErrorMsg()	{		if ($this->_errorMsg !== false) return $this->_errorMsg;		if (ADODB_PHPVER >= 0x4300) {			if (!empty($this->_resultid)) {				$this->_errorMsg = @pg_result_error($this->_resultid);				if ($this->_errorMsg) return $this->_errorMsg;			}			if (!empty($this->_connectionID)) {				$this->_errorMsg = @pg_last_error($this->_connectionID);			} else $this->_errorMsg = @pg_last_error();		} else {			if (empty($this->_connectionID)) $this->_errorMsg = @pg_errormessage();			else $this->_errorMsg = @pg_errormessage($this->_connectionID);		}		return $this->_errorMsg;	}	function ErrorNo()	{		$e = $this->ErrorMsg();		if (strlen($e)) {			return ADOConnection::MetaError($e);		 }		 return 0;	}	// returns true or false	function _close()	{		if ($this->transCnt) $this->RollbackTrans();		if ($this->_resultid) {			@pg_freeresult($this->_resultid);			$this->_resultid = false;		}		@pg_close($this->_connectionID);		$this->_connectionID = false;		return true;	}	/*	* Maximum size of C field	*/	function CharMax()	{		return 1000000000;  // should be 1 Gb?	}	/*	* Maximum size of X field	*/	function TextMax()	{		return 1000000000; // should be 1 Gb?	}}/*--------------------------------------------------------------------------------------	 Class Name: Recordset--------------------------------------------------------------------------------------*/class ADORecordSet_postgres64 extends ADORecordSet{	var $_blobArr;	var $databaseType = "postgres64";	var $canSeek = true;	function ADORecordSet_postgres64($queryID,$mode=false)	{		if ($mode === false) {			global $ADODB_FETCH_MODE;			$mode = $ADODB_FETCH_MODE;		}		switch ($mode)		{		case ADODB_FETCH_NUM: $this->fetchMode = PGSQL_NUM; break;		case ADODB_FETCH_ASSOC:$this->fetchMode = PGSQL_ASSOC; break;		default:		case ADODB_FETCH_DEFAULT:		case ADODB_FETCH_BOTH:$this->fetchMode = PGSQL_BOTH; break;		}		$this->adodbFetchMode = $mode;		$this->ADORecordSet($queryID);	}	function &GetRowAssoc($upper=true)	{		if ($this->fetchMode == PGSQL_ASSOC && !$upper) return $this->fields;		$row =& ADORecordSet::GetRowAssoc($upper);		return $row;	}	function _initrs()	{	global $ADODB_COUNTRECS;		$qid = $this->_queryID;		$this->_numOfRows = ($ADODB_COUNTRECS)? @pg_numrows($qid):-1;		$this->_numOfFields = @pg_numfields($qid);		// cache types for blob decode check		for ($i=0, $max = $this->_numOfFields; $i < $max; $i++) {			if (pg_fieldtype($qid,$i) == 'bytea') {				$this->_blobArr[$i] = pg_fieldname($qid,$i);			}		}	}		/* Use associative array to get fields array */	function Fields($colname)	{		if ($this->fetchMode != PGSQL_NUM) return @$this->fields[$colname];		if (!$this->bind) {			$this->bind = array();			for ($i=0; $i < $this->_numOfFields; $i++) {				$o = $this->FetchField($i);				$this->bind[strtoupper($o->name)] = $i;			}		}		 return $this->fields[$this->bind[strtoupper($colname)]];	}	function &FetchField($off = 0)	{		// offsets begin at 0		$o= new ADOFieldObject();		$o->name = @pg_fieldname($this->_queryID,$off);		$o->type = @pg_fieldtype($this->_queryID,$off);		$o->max_length = @pg_fieldsize($this->_queryID,$off);		return $o;	}	function _seek($row)	{		return @pg_fetch_row($this->_queryID,$row);	}	function _decode($blob)	{		eval('$realblob="'.adodb_str_replace(array('"','$'),array('\"','\$'),$blob).'";');		return $realblob;	}	function _fixblobs()	{		if ($this->fetchMode == PGSQL_NUM || $this->fetchMode == PGSQL_BOTH) {			foreach($this->_blobArr as $k => $v) {				$this->fields[$k] = ADORecordSet_postgres64::_decode($this->fields[$k]);			}		}		if ($this->fetchMode == PGSQL_ASSOC || $this->fetchMode == PGSQL_BOTH) {			foreach($this->_blobArr as $k => $v) {				$this->fields[$v] = ADORecordSet_postgres64::_decode($this->fields[$v]);			}		}	}	// 10% speedup to move MoveNext to child class	function MoveNext()	{		if (!$this->EOF) {			$this->_currentRow++;			if ($this->_numOfRows < 0 || $this->_numOfRows > $this->_currentRow) {				$this->fields = @pg_fetch_array($this->_queryID,$this->_currentRow,$this->fetchMode);				if (is_array($this->fields) && $this->fields) {					if (isset($this->_blobArr)) $this->_fixblobs();					return true;				}			}			$this->fields = false;			$this->EOF = true;		}		return false;	}	function _fetch()	{		if ($this->_currentRow >= $this->_numOfRows && $this->_numOfRows >= 0)        	return false;		$this->fields = @pg_fetch_array($this->_queryID,$this->_currentRow,$this->fetchMode);	if ($this->fields && isset($this->_blobArr)) $this->_fixblobs();		return (is_array($this->fields));	}	function _close()	{		return @pg_freeresult($this->_queryID);	}	function MetaType($t,$len=-1,$fieldobj=false)	{		if (is_object($t)) {			$fieldobj = $t;			$t = $fieldobj->type;			$len = $fieldobj->max_length;		}		switch (strtoupper($t)) {				case 'MONEY': // stupid, postgres expects money to be a string				case 'INTERVAL':				case 'CHAR':				case 'CHARACTER':				case 'VARCHAR':				case 'NAME':		   		case 'BPCHAR':				case '_VARCHAR':					if ($len <= $this->blobSize) return 'C';				case 'TEXT':					return 'X';				case 'IMAGE': // user defined type				case 'BLOB': // user defined type				case 'BIT':	// This is a bit string, not a single bit, so don't return 'L'				case 'VARBIT':				case 'BYTEA':					return 'B';				case 'BOOL':				case 'BOOLEAN':					return 'L';				case 'DATE':					return 'D';				case 'TIME':				case 'DATETIME':				case 'TIMESTAMP':				case 'TIMESTAMPTZ':					return 'T';				case 'SMALLINT':				case 'BIGINT':				case 'INTEGER':				case 'INT8':				case 'INT4':				case 'INT2':					if (isset($fieldobj) &&				empty($fieldobj->primary_key) && empty($fieldobj->unique)) return 'I';				case 'OID':				case 'SERIAL':					return 'R';				 default:				 	return 'N';			}	}}?>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区日韩| 欧美理论片在线| 日韩欧美中文一区二区| 亚洲欧洲av在线| 国内欧美视频一区二区| 精品视频一区三区九区| 国产精品乱码久久久久久| 久久99热国产| 在线综合视频播放| 亚洲免费看黄网站| 国产不卡免费视频| 2欧美一区二区三区在线观看视频| 亚洲最大成人综合| 粉嫩aⅴ一区二区三区四区五区| 日韩区在线观看| 亚洲国产精品久久人人爱蜜臀| 成人免费看的视频| 久久噜噜亚洲综合| 久久不见久久见免费视频1| 欧美影院一区二区三区| 国产精品情趣视频| 夫妻av一区二区| 久久久久国产精品厨房| 美女视频黄免费的久久| 欧美高清hd18日本| 日韩在线一区二区| 欧美日韩免费视频| 亚洲综合自拍偷拍| 欧美性受xxxx黑人xyx性爽| 亚洲美女屁股眼交| 97se亚洲国产综合自在线观| 国产精品国产三级国产普通话99| 成人免费高清视频| 国产精品欧美久久久久无广告| 国精产品一区一区三区mba视频| 日韩一区二区免费高清| 日本欧美一区二区三区| 欧美一区二区在线免费播放 | 欧美三级电影网| 一区二区三区在线观看网站| 日本韩国欧美三级| 一区二区三区欧美日| 欧美在线观看你懂的| 亚洲丰满少妇videoshd| 欧美三区在线视频| 五月激情综合色| 91精品一区二区三区久久久久久| 日本不卡的三区四区五区| 555www色欧美视频| 麻豆国产欧美一区二区三区| 亚洲乱码国产乱码精品精可以看 | 成人a区在线观看| 国产精品不卡在线| 91成人在线精品| 亚洲一区二区三区在线| 欧美酷刑日本凌虐凌虐| 久久国产精品露脸对白| 久久精品在线免费观看| av电影一区二区| 亚洲一区二区av在线| 欧美二区三区91| 狠狠色2019综合网| 国产农村妇女毛片精品久久麻豆 | 欧美性感一类影片在线播放| 午夜精品福利在线| 欧美电影免费观看完整版| 国产成人a级片| 成人欧美一区二区三区白人 | 欧洲国内综合视频| 日韩高清一区二区| 2020国产精品自拍| 波多野结衣在线一区| 亚洲综合在线视频| 欧美一级午夜免费电影| 国产乱码精品一区二区三区忘忧草| 欧美国产禁国产网站cc| 一本大道久久a久久精二百| 亚洲国产wwwccc36天堂| 欧美成人a∨高清免费观看| 成人中文字幕在线| 亚洲一区在线播放| 精品日韩一区二区| 99久久精品免费观看| 丝袜美腿亚洲一区| 国产午夜久久久久| 欧美吻胸吃奶大尺度电影| 极品美女销魂一区二区三区免费| 亚洲欧洲精品一区二区三区不卡| 欧美夫妻性生活| 成人国产精品免费观看动漫| 亚洲永久免费av| 久久久精品一品道一区| 欧美日韩亚洲高清一区二区| 国产在线视频一区二区| 一区二区三区四区五区视频在线观看| 欧美一级黄色录像| 99riav久久精品riav| 免费在线欧美视频| 亚洲精品视频在线观看免费| 精品免费一区二区三区| 91久久奴性调教| 国产精品乡下勾搭老头1| 香蕉久久夜色精品国产使用方法| 日本一区二区三区四区| 欧美精选在线播放| 91亚洲精品久久久蜜桃| 精品一区二区三区在线观看| 一区二区不卡在线播放 | 欧美精品一区二区精品网| 色成年激情久久综合| 国产a区久久久| 蜜桃av一区二区三区| 亚洲综合小说图片| 国产精品国产三级国产aⅴ原创| 欧美成人性战久久| 欧美日韩激情一区二区三区| 99久久久无码国产精品| 国产在线视频不卡二| 三级影片在线观看欧美日韩一区二区| 中文字幕一区不卡| 国产日韩欧美综合在线| 日韩欧美一区中文| 欧美亚洲精品一区| 99精品欧美一区二区三区小说| 久久99国产精品尤物| 亚洲成av人影院| 夜夜精品浪潮av一区二区三区| 国产精品视频在线看| www欧美成人18+| 日韩天堂在线观看| 欧美日韩一区三区四区| 色丁香久综合在线久综合在线观看| 成人免费观看视频| 国产成人亚洲综合色影视| 麻豆精品视频在线观看免费| 午夜久久久久久久久久一区二区| 亚洲免费色视频| 亚洲视频一区二区在线观看| 中文字幕免费观看一区| 久久久亚洲精华液精华液精华液| 91精品国产欧美一区二区成人 | 国产原创一区二区| 激情文学综合插| 久久综合综合久久综合| 奇米精品一区二区三区在线观看 | 国产一区二区在线观看视频| 裸体在线国模精品偷拍| 日韩一区精品字幕| 五月天国产精品| 日韩精品乱码av一区二区| 亚洲第一久久影院| 五月天婷婷综合| 偷拍一区二区三区| 视频一区欧美精品| 日本中文字幕一区二区视频| 三级影片在线观看欧美日韩一区二区 | 欧美综合色免费| 在线观看亚洲一区| 欧美午夜寂寞影院| 欧美精品日韩一本| 91精品国产色综合久久| 日韩一区二区不卡| 精品日产卡一卡二卡麻豆| 欧美精品一区二区三区蜜桃视频| 日韩视频免费直播| 日韩欧美一级二级| 久久一区二区视频| 国产午夜亚洲精品理论片色戒| 欧美高清在线精品一区| 国产精品毛片无遮挡高清| 亚洲日本丝袜连裤袜办公室| 亚洲一区二区三区美女| 婷婷综合在线观看| 老司机精品视频一区二区三区| 久久99国内精品| 成人午夜视频网站| 91视视频在线观看入口直接观看www | 欧美亚洲综合在线| 欧美男女性生活在线直播观看| 欧美一区二区三区性视频| 精品99一区二区| 中文字幕高清一区| 亚洲婷婷在线视频| 午夜国产不卡在线观看视频| 男人的j进女人的j一区| 国产成人自拍网| 97精品超碰一区二区三区| 在线观看不卡一区| 日韩精品在线看片z| 亚洲国产精品精华液ab| 亚洲综合精品自拍| 免费在线看成人av| 日韩精品一区二区在线观看| 久久人人爽人人爽| 亚洲欧美日韩系列| 日本va欧美va瓶| 成人免费看片app下载| 欧美日韩国产精选| 久久久久久久久久久久久女国产乱| 国产精品久久久久aaaa樱花 |