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

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

?? adodb-db2.inc.php

?? asterisk 計費模塊
?? PHP
?? 第 1 頁 / 共 2 頁
字號:
<?php/*   V4.94 23 Jan 2007  (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一区二区三区免费野_久草精品视频
精品国产一区二区三区四区四| 在线欧美一区二区| 亚洲成a天堂v人片| 一区二区三区国产| 亚洲国产日韩在线一区模特| 一区二区三区不卡在线观看| 国产日韩欧美精品综合| 日本一区二区三区在线不卡 | 国产裸体歌舞团一区二区| 亚洲欧美电影院| 中文字幕永久在线不卡| 17c精品麻豆一区二区免费| 亚洲人妖av一区二区| 亚洲精品第1页| 午夜精品福利一区二区三区av| 水蜜桃久久夜色精品一区的特点| 秋霞电影网一区二区| 精品亚洲aⅴ乱码一区二区三区| 麻豆精品一区二区av白丝在线 | 精品国产免费久久| 国产亚洲欧美一区在线观看| 国产精品毛片久久久久久久| 一区二区三区丝袜| 蜜臀av性久久久久蜜臀aⅴ| 国产精品小仙女| 91传媒视频在线播放| 欧美电影在线免费观看| 久久久午夜精品理论片中文字幕| 国产女主播一区| 亚洲综合另类小说| 激情五月播播久久久精品| 成人精品视频一区二区三区尤物| 在线观看亚洲a| 久久午夜免费电影| 午夜精品福利一区二区三区蜜桃| 国产在线不卡一卡二卡三卡四卡| 99vv1com这只有精品| 日韩欧美国产综合一区 | 婷婷夜色潮精品综合在线| 国内成+人亚洲+欧美+综合在线| 91网上在线视频| 日韩一区二区三区免费观看| 国产精品美女一区二区| 蜜臀av一区二区| 色av一区二区| 国产精品午夜春色av| 免费观看日韩av| 日本高清不卡视频| 中文字幕成人av| 麻豆国产91在线播放| 91免费版pro下载短视频| 久久色中文字幕| 日韩电影一区二区三区四区| 91在线精品一区二区三区| 久久亚洲一级片| 免费观看久久久4p| 3atv在线一区二区三区| 亚洲国产综合色| 色婷婷久久久久swag精品| 亚洲国产电影在线观看| 久久精品噜噜噜成人av农村| 欧美性大战xxxxx久久久| 亚洲欧洲性图库| 成人av午夜影院| 国产精品久久久久久久久免费丝袜| 美女视频网站黄色亚洲| 欧美挠脚心视频网站| 亚洲午夜三级在线| 欧美最猛性xxxxx直播| 亚洲精品视频在线| 色婷婷综合久久久中文字幕| 亚洲国产成人一区二区三区| 国产一区二区三区四区五区入口 | 成人精品视频一区二区三区尤物| 欧美不卡激情三级在线观看| 日韩一区精品字幕| 精品国免费一区二区三区| 婷婷久久综合九色综合伊人色| 91国产免费观看| 亚洲综合色在线| 欧美精品乱人伦久久久久久| 亚洲午夜一区二区| 在线成人免费观看| 老司机免费视频一区二区| 日韩免费一区二区| 国产呦精品一区二区三区网站| 精品久久国产字幕高潮| 国产美女久久久久| 国产精品初高中害羞小美女文| 不卡视频免费播放| 亚洲高清在线精品| 精品少妇一区二区三区在线播放| 久国产精品韩国三级视频| 久久久欧美精品sm网站| 99视频在线精品| 亚洲一区免费视频| 日韩欧美二区三区| 成人精品国产一区二区4080| 一区二区三区色| 精品播放一区二区| 99热精品国产| 日韩av一二三| 亚洲欧洲av另类| 7777精品伊人久久久大香线蕉的 | 欧美亚洲综合另类| 日韩经典中文字幕一区| 精品福利在线导航| 色综合中文字幕| 日本欧洲一区二区| 国产精品动漫网站| 欧美一区二区三区免费观看视频 | 欧美日韩国产一区| 国产成人av电影在线播放| 一区二区三区免费看视频| 欧美成人a在线| 91影视在线播放| 久久国产精品无码网站| 亚洲精品视频一区二区| 精品国产一区a| 在线精品视频一区二区三四| 精品中文字幕一区二区| 一区二区三区在线观看欧美| 精品国产一区二区三区av性色 | 成人亚洲一区二区一| 午夜精品一区二区三区电影天堂| 国产欧美一区二区三区沐欲| 4438x亚洲最大成人网| 99精品国产热久久91蜜凸| 九色综合狠狠综合久久| 一区二区三区精品久久久| 中文字幕 久热精品 视频在线| 欧美高清dvd| 欧美三级日韩三级| 欧美老肥妇做.爰bbww视频| 91丨国产丨九色丨pron| 国产成人高清在线| 久久电影网站中文字幕| 五月天国产精品| 亚洲一级二级在线| 亚洲青青青在线视频| 中日韩av电影| 国产精品毛片a∨一区二区三区| 日韩欧美国产wwwww| 欧美视频一区二区三区| 色综合久久久久| 一本一道综合狠狠老| 97久久久精品综合88久久| 成人福利视频网站| 国产 日韩 欧美大片| 国产福利视频一区二区三区| 国产一区二区在线影院| 裸体一区二区三区| 久久精品国产第一区二区三区| 日韩电影在线观看电影| 免费久久99精品国产| 免费观看一级特黄欧美大片| 蜜桃视频一区二区三区在线观看| 日韩黄色一级片| 久久精品国内一区二区三区| 日本免费新一区视频| 精品一区二区三区在线观看国产| 久久99久久99小草精品免视看| 久久99精品久久久久久| 国产精品亚洲一区二区三区妖精| 国产传媒一区在线| 97se亚洲国产综合自在线观| 91捆绑美女网站| 欧美日产在线观看| 久久综合狠狠综合久久综合88| 国产日韩欧美高清| 亚洲综合男人的天堂| 日韩国产一二三区| 国产精品资源在线| 99精品国产视频| 欧美一区二区三区男人的天堂| 精品国产免费视频| 亚洲欧美另类久久久精品| 亚洲国产成人av| 狠狠色丁香久久婷婷综| 成人午夜短视频| 欧美日韩国产首页| www精品美女久久久tv| 国产精品夫妻自拍| 日韩vs国产vs欧美| 国产成人8x视频一区二区| 91在线视频网址| 欧美精品乱人伦久久久久久| 国产日韩欧美高清| 婷婷成人激情在线网| 夫妻av一区二区| 欧美精品日韩一区| 亚洲人成在线播放网站岛国| 日韩中文欧美在线| www.久久精品| 亚洲视频一二三| 狠狠色丁香久久婷婷综合丁香| 色婷婷亚洲精品| 国产精品麻豆欧美日韩ww| 日韩高清在线不卡| 91成人国产精品|