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

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

?? adodb-db2.inc.php

?? 很棒的在線教學系統
?? PHP
?? 第 1 頁 / 共 2 頁
字號:
<?php/*   V4.98 13 Feb 2008  (c) 2006 John Lim (jlim#natsoft.com.my). All rights reserved.  This is a version of the ADODB driver for DB2.  It uses the 'ibm_db2' PECL extension  for PHP (http://pecl.php.net/package/ibm_db2), which in turn requires DB2 V8.2.2 or  higher.  Originally tested with PHP 5.1.1 and Apache 2.0.55 on Windows XP SP2.  More recently tested with PHP 5.1.2 and Apache 2.0.55 on Windows XP SP2.  This file was ported from "adodb-odbc.inc.php" by Larry Menard, "larry.menard#rogers.com".  I ripped out what I believed to be a lot of redundant or obsolete code, but there are  probably still some remnants of the ODBC support in this file; I'm relying on reviewers  of this code to point out any other things that can be removed.*/// security - hide pathsif (!defined('ADODB_DIR')) die();  define("_ADODB_DB2_LAYER", 2 );	 /*----------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/class ADODB_db2 extends ADOConnection {	var $databaseType = "db2";		var $fmtDate = "'Y-m-d'";	var $concat_operator = '||';		var $sysTime = 'CURRENT TIME';	var $sysDate = 'CURRENT DATE';	var $sysTimeStamp = 'CURRENT TIMESTAMP';		var $fmtTimeStamp = "'Y-m-d-H:i:s'";	var $replaceQuote = "''"; // string to use to replace quotes	var $dataProvider = "db2";	var $hasAffectedRows = true;	var $binmode = DB2_BINARY;	var $useFetchArray = false; // setting this to true will make array elements in FETCH_ASSOC mode case-sensitive								// breaking backward-compat	var $_bindInputArray = false;		var $_genIDSQL = "VALUES NEXTVAL FOR %s";	var $_genSeqSQL = "CREATE SEQUENCE %s START WITH 1 NO MAXVALUE NO CYCLE";	var $_dropSeqSQL = "DROP SEQUENCE %s";	var $_autocommit = true;	var $_haserrorfunctions = true;	var $_lastAffectedRows = 0;	var $uCaseTables = true; // for meta* functions, uppercase table names	var $hasInsertID = true;	    function _insertid()    {        return ADOConnection::GetOne('VALUES IDENTITY_VAL_LOCAL()');    }		function ADODB_db2() 	{ 			$this->_haserrorfunctions = ADODB_PHPVER >= 0x4050;	}			// returns true or false	function _connect($argDSN, $argUsername, $argPassword, $argDatabasename)	{		global $php_errormsg;				if (!function_exists('db2_connect')) {			ADOConnection::outp("Warning: The old ODBC based DB2 driver has been renamed 'odbc_db2'. This ADOdb driver calls PHP's native db2 extension.");			return null;		}		// This needs to be set before the connect().		// Replaces the odbc_binmode() call that was in Execute()		ini_set('ibm_db2.binmode', $this->binmode);		if ($argDatabasename) {			$this->_connectionID = db2_connect($argDatabasename,$argUsername,$argPassword);		} else {			$this->_connectionID = db2_connect($argDSN,$argUsername,$argPassword);		}		if (isset($php_errormsg)) $php_errormsg = '';		// For db2_connect(), there is an optional 4th arg.  If present, it must be		// an array of valid options.  So far, we don't use them.		$this->_errorMsg = @db2_conn_errormsg(); 		if (isset($this->connectStmt)) $this->Execute($this->connectStmt);				return $this->_connectionID != false;	}		// returns true or false	function _pconnect($argDSN, $argUsername, $argPassword, $argDatabasename)	{		global $php_errormsg;			if (!function_exists('db2_connect')) return null;				// This needs to be set before the connect().		// Replaces the odbc_binmode() call that was in Execute()		ini_set('ibm_db2.binmode', $this->binmode);		if (isset($php_errormsg)) $php_errormsg = '';		$this->_errorMsg = isset($php_errormsg) ? $php_errormsg : '';				if ($argDatabasename) {			$this->_connectionID = db2_pconnect($argDatabasename,$argUsername,$argPassword);		} else {			$this->_connectionID = db2_pconnect($argDSN,$argUsername,$argPassword);		}		if (isset($php_errormsg)) $php_errormsg = '';		$this->_errorMsg = @db2_conn_errormsg();		if ($this->_connectionID && $this->autoRollback) @db2_rollback($this->_connectionID);		if (isset($this->connectStmt)) $this->Execute($this->connectStmt);				return $this->_connectionID != false;	}	// format and return date string in database timestamp format	function DBTimeStamp($ts)	{		if (empty($ts) && $ts !== 0) return 'null';		if (is_string($ts)) $ts = ADORecordSet::UnixTimeStamp($ts);		return 'TO_DATE('.adodb_date($this->fmtTimeStamp,$ts).",'YYYY-MM-DD HH24:MI:SS')";	}		// Format date column in sql string given an input format that understands Y M D	function SQLDate($fmt, $col=false)	{		// use right() and replace() ?		if (!$col) $col = $this->sysDate;		/* use TO_CHAR() if $fmt is TO_CHAR() allowed fmt */		if ($fmt== 'Y-m-d H:i:s')			return 'TO_CHAR('.$col.", 'YYYY-MM-DD HH24:MI:SS')";		$s = '';				$len = strlen($fmt);		for ($i=0; $i < $len; $i++) {			if ($s) $s .= $this->concat_operator;			$ch = $fmt[$i];			switch($ch) {			case 'Y':			case 'y':				if ($len==1) return "year($col)";				$s .= "char(year($col))";				break;			case 'M':				if ($len==1) return "monthname($col)";				$s .= "substr(monthname($col),1,3)";				break;			case 'm':				if ($len==1) return "month($col)";				$s .= "right(digits(month($col)),2)";				break;			case 'D':			case 'd':				if ($len==1) return "day($col)";				$s .= "right(digits(day($col)),2)";				break;			case 'H':			case 'h':				if ($len==1) return "hour($col)";				if ($col != $this->sysDate) $s .= "right(digits(hour($col)),2)";					else $s .= "''";				break;			case 'i':			case 'I':				if ($len==1) return "minute($col)";				if ($col != $this->sysDate)					$s .= "right(digits(minute($col)),2)";					else $s .= "''";				break;			case 'S':			case 's':				if ($len==1) return "second($col)";				if ($col != $this->sysDate)					$s .= "right(digits(second($col)),2)";				else $s .= "''";				break;			default:				if ($ch == '\\') {					$i++;					$ch = substr($fmt,$i,1);				}				$s .= $this->qstr($ch);			}		}		return $s;	}  		function ServerInfo()	{			if (!empty($this->host) && ADODB_PHPVER >= 0x4300) {			$dsn = strtoupper($this->host);			$first = true;			$found = false;						if (!function_exists('db2_data_source')) return false;						while(true) {								$rez = @db2_data_source($this->_connectionID,					$first ? SQL_FETCH_FIRST : SQL_FETCH_NEXT);				$first = false;				if (!is_array($rez)) break;				if (strtoupper($rez['server']) == $dsn) {					$found = true;					break;				}			} 			if (!$found) return ADOConnection::ServerInfo();			if (!isset($rez['version'])) $rez['version'] = '';			return $rez;		} else {			return ADOConnection::ServerInfo();		}	}		function CreateSequence($seqname='adodbseq',$start=1)	{		if (empty($this->_genSeqSQL)) return false;		$ok = $this->Execute(sprintf($this->_genSeqSQL,$seqname));		if (!$ok) return false;		return true;	}		function DropSequence($seqname)	{		if (empty($this->_dropSeqSQL)) return false;		return $this->Execute(sprintf($this->_dropSeqSQL,$seqname));	}		/*		This algorithm is not very efficient, but works even if table locking		is not available.				Will return false if unable to generate an ID after $MAXLOOPS attempts.	*/	function GenID($seq='adodbseq',$start=1)	{			// if you have to modify the parameter below, your database is overloaded,		// or you need to implement generation of id's yourself!		$num = $this->GetOne("VALUES NEXTVAL FOR $seq");				return $num;			}	function ErrorMsg()	{		if ($this->_haserrorfunctions) {			if ($this->_errorMsg !== false) return $this->_errorMsg;			if (empty($this->_connectionID)) return @db2_conn_errormsg();			return @db2_conn_errormsg($this->_connectionID);		} else return ADOConnection::ErrorMsg();	}		function ErrorNo()	{				if ($this->_haserrorfunctions) {			if ($this->_errorCode !== false) {				// bug in 4.0.6, error number can be corrupted string (should be 6 digits)				return (strlen($this->_errorCode)<=2) ? 0 : $this->_errorCode;			}			if (empty($this->_connectionID)) $e = @db2_conn_error(); 			else $e = @db2_conn_error($this->_connectionID);						 // bug in 4.0.6, error number can be corrupted string (should be 6 digits)			 // so we check and patch			if (strlen($e)<=2) return 0;			return $e;		} else return ADOConnection::ErrorNo();	}			function BeginTrans()	{			if (!$this->hasTransactions) return false;		if ($this->transOff) return true; 		$this->transCnt += 1;		$this->_autocommit = false;		return db2_autocommit($this->_connectionID,false);	}		function CommitTrans($ok=true) 	{ 		if ($this->transOff) return true; 		if (!$ok) return $this->RollbackTrans();		if ($this->transCnt) $this->transCnt -= 1;		$this->_autocommit = true;		$ret = db2_commit($this->_connectionID);		db2_autocommit($this->_connectionID,true);		return $ret;	}		function RollbackTrans()	{		if ($this->transOff) return true; 		if ($this->transCnt) $this->transCnt -= 1;		$this->_autocommit = true;		$ret = db2_rollback($this->_connectionID);		db2_autocommit($this->_connectionID,true);		return $ret;	}		function MetaPrimaryKeys($table)	{	global $ADODB_FETCH_MODE;			if ($this->uCaseTables) $table = strtoupper($table);		$schema = '';		$this->_findschema($table,$schema);		$savem = $ADODB_FETCH_MODE;		$ADODB_FETCH_MODE = ADODB_FETCH_NUM;		$qid = @db2_primarykeys($this->_connectionID,'',$schema,$table);				if (!$qid) {			$ADODB_FETCH_MODE = $savem;			return false;		}		$rs = new ADORecordSet_db2($qid);		$ADODB_FETCH_MODE = $savem;				if (!$rs) return false;				$arr =& $rs->GetArray();		$rs->Close();		$arr2 = array();		for ($i=0; $i < sizeof($arr); $i++) {			if ($arr[$i][3]) $arr2[] = $arr[$i][3];		}		return $arr2;	}		function MetaForeignKeys($table, $owner = FALSE, $upper = FALSE, $asociative = FALSE )	{	global $ADODB_FETCH_MODE;			if ($this->uCaseTables) $table = strtoupper($table);		$schema = '';		$this->_findschema($table,$schema);		$savem = $ADODB_FETCH_MODE;		$ADODB_FETCH_MODE = ADODB_FETCH_NUM;		$qid = @db2_foreign_keys($this->_connectionID,'',$schema,$table);		if (!$qid) {			$ADODB_FETCH_MODE = $savem;			return false;		}		$rs = new ADORecordSet_db2($qid);		$ADODB_FETCH_MODE = $savem;		/*		$rs->fields indices		0 PKTABLE_CAT		1 PKTABLE_SCHEM		2 PKTABLE_NAME		3 PKCOLUMN_NAME		4 FKTABLE_CAT		5 FKTABLE_SCHEM		6 FKTABLE_NAME		7 FKCOLUMN_NAME		*/			if (!$rs) return false;		$foreign_keys = array();	 	 		while (!$rs->EOF) {			if (strtoupper(trim($rs->fields[2])) == $table && (!$schema || strtoupper($rs->fields[1]) == $schema)) {				if (!is_array($foreign_keys[$rs->fields[5].'.'.$rs->fields[6]])) 					$foreign_keys[$rs->fields[5].'.'.$rs->fields[6]] = array();				$foreign_keys[$rs->fields[5].'.'.$rs->fields[6]][$rs->fields[7]] = $rs->fields[3];	 					}			$rs->MoveNext();		}		$rs->Close();		return $foreign_key;	}			function &MetaTables($ttype=false,$schema=false)	{	global $ADODB_FETCH_MODE;			$savem = $ADODB_FETCH_MODE;		$ADODB_FETCH_MODE = ADODB_FETCH_NUM;		$qid = db2_tables($this->_connectionID);				$rs = new ADORecordSet_db2($qid);				$ADODB_FETCH_MODE = $savem;		if (!$rs) {			$false = false;			return $false;		}				$arr =& $rs->GetArray();				$rs->Close();		$arr2 = array();				if ($ttype) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91亚洲午夜精品久久久久久| 成人妖精视频yjsp地址| www.亚洲色图.com| 91麻豆精品国产91久久久资源速度 | 天天综合日日夜夜精品| 福利91精品一区二区三区| 欧美精品在线一区二区三区| 国产精品国产三级国产aⅴ无密码| 免费美女久久99| 精品视频资源站| 中文字幕在线观看一区| 国产精品中文字幕一区二区三区| 制服.丝袜.亚洲.另类.中文| 亚洲一区自拍偷拍| a在线欧美一区| 国产婷婷色一区二区三区 | 亚洲人亚洲人成电影网站色| 国产精品一区二区免费不卡| 五月天一区二区三区| 成人av资源下载| 26uuu久久综合| 另类小说一区二区三区| 91精品国产综合久久蜜臀| 亚洲成在线观看| 欧美视频中文字幕| 亚洲女同ⅹxx女同tv| k8久久久一区二区三区 | 日韩欧美视频一区| 亚洲 欧美综合在线网络| 91久久精品国产91性色tv | 欧美成人福利视频| 五月综合激情日本mⅴ| 欧美日韩一级视频| 亚洲一区二区三区视频在线| 日本道精品一区二区三区| 亚洲人成影院在线观看| 99久久久无码国产精品| ㊣最新国产の精品bt伙计久久| 不卡大黄网站免费看| 中文字幕一区二区视频| av电影一区二区| 亚洲男同性恋视频| 在线免费观看一区| 亚洲大片一区二区三区| 91精品久久久久久久91蜜桃| 美女久久久精品| 精品乱码亚洲一区二区不卡| 国精产品一区一区三区mba视频| 久久久亚洲综合| 国v精品久久久网| 一区在线观看视频| 色狠狠av一区二区三区| 亚洲一区二区三区影院| 91精品欧美福利在线观看| 免费看欧美女人艹b| 久久影院电视剧免费观看| 国产黄色精品视频| 中文字幕在线不卡一区| 在线一区二区三区| 天堂在线一区二区| 精品噜噜噜噜久久久久久久久试看| 国产一区二区三区蝌蚪| 中文字幕亚洲视频| 欧美揉bbbbb揉bbbbb| 蜜桃精品视频在线| 久久99久久久欧美国产| 久久午夜羞羞影院免费观看| 成人91在线观看| 一区二区在线观看视频| 这里只有精品视频在线观看| 国产一区二三区好的| 亚洲欧洲精品一区二区三区| 欧美性猛交xxxx黑人交| 久久疯狂做爰流白浆xx| 国产人妖乱国产精品人妖| 99国产精品久久久久久久久久 | 国产精品久久午夜| 色嗨嗨av一区二区三区| 青青草97国产精品免费观看无弹窗版| 精品久久久久久久久久久院品网| 成人精品免费网站| 亚洲综合色自拍一区| 精品日韩成人av| 91女厕偷拍女厕偷拍高清| 午夜欧美电影在线观看| 26uuu成人网一区二区三区| a级精品国产片在线观看| 亚洲bdsm女犯bdsm网站| 久久久不卡影院| 欧洲人成人精品| 国内成+人亚洲+欧美+综合在线 | 国产亚洲一区二区三区| 日本二三区不卡| 久久99国内精品| 亚洲女人的天堂| 精品久久久久99| 色婷婷激情综合| 国产一区欧美日韩| 亚洲无人区一区| 国产欧美日韩激情| 亚洲国产精品久久艾草纯爱| 久久麻豆一区二区| 欧美精品一二三| 成人av小说网| 久久er精品视频| 亚洲国产精品久久久久秋霞影院| 欧美国产在线观看| 91精品国产综合久久国产大片| 成人精品国产一区二区4080| 日本sm残虐另类| 一区二区三区四区乱视频| 久久久久久久久久电影| 欧美人伦禁忌dvd放荡欲情| 成人av午夜电影| 国产一区在线观看视频| 五月婷婷久久综合| 亚洲人成影院在线观看| 国产欧美日韩在线视频| 日韩一级免费观看| 色哟哟精品一区| 成人性生交大片免费看中文| 麻豆精品在线视频| 一区二区三区**美女毛片| 国产欧美日产一区| 精品国产91亚洲一区二区三区婷婷| 欧美亚洲国产bt| bt欧美亚洲午夜电影天堂| 国产精选一区二区三区| 免费成人av资源网| 亚洲福利视频导航| 亚洲精品第1页| 亚洲色图清纯唯美| 中文字幕国产精品一区二区| www国产成人免费观看视频 深夜成人网 | 亚洲成av人片在线观看| 18涩涩午夜精品.www| 国产欧美va欧美不卡在线| www精品美女久久久tv| 欧美一区二区三区公司| 欧美电影一区二区| 欧美视频精品在线| 欧美在线免费观看视频| 色诱视频网站一区| 91麻豆蜜桃一区二区三区| 成人福利视频网站| 成人黄色免费短视频| 成人性生交大片免费看中文| 国产成人久久精品77777最新版本| 国内成人精品2018免费看| 激情综合五月婷婷| 狠狠色丁香婷婷综合久久片| 蜜臀a∨国产成人精品| 美女视频一区二区| 老汉av免费一区二区三区| 日本aⅴ精品一区二区三区| 日韩不卡一区二区| 日本美女一区二区三区视频| 日韩高清一区二区| 另类专区欧美蜜桃臀第一页| 精品一二三四区| 国产乱码精品一区二区三| 国产九色sp调教91| 成人精品国产一区二区4080| 91丨九色丨蝌蚪丨老版| 日本精品免费观看高清观看| 色综合一区二区三区| 在线观看亚洲精品视频| 欧美人伦禁忌dvd放荡欲情| 日韩视频永久免费| 久久精品一区蜜桃臀影院| 国产欧美日韩卡一| 最近中文字幕一区二区三区| 一区二区三区在线视频观看58 | 亚洲精品中文在线影院| 亚洲国产精品一区二区www| 亚洲福利视频一区二区| 麻豆一区二区在线| 成人中文字幕合集| 91玉足脚交白嫩脚丫在线播放| 在线欧美小视频| 欧美一区二区女人| 国产午夜精品久久久久久久 | 最好看的中文字幕久久| 一区二区三区四区av| 午夜精品久久久久| 国产麻豆成人精品| 99re成人在线| 在线一区二区三区四区五区 | 综合电影一区二区三区| 亚洲欧洲av在线| 亚洲国产精品尤物yw在线观看| 日韩极品在线观看| 国产精品一二三区| 色94色欧美sute亚洲线路二| 欧美日韩成人在线一区| 久久精品人人做人人综合 | 亚洲一区电影777| 美女网站色91| 91在线视频18| 制服视频三区第一页精品|