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

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

?? adodb-mysqli.inc.php

?? PhpWiki是sourceforge的一個開源項目
?? PHP
?? 第 1 頁 / 共 2 頁
字號:
<?php/*V4.22 15 Apr 2004  (c) 2000-2004 John Lim (jlim@natsoft.com.my). All rights reserved.  Released under both BSD license and Lesser GPL library license.   Whenever there is any discrepancy between the two licenses,   the BSD license will take precedence.  Set tabs to 8.    MySQL code that does not support transactions. Use mysqlt if you need transactions.  Requires mysql client. Works on Windows and Unix. 21 October 2003: MySQLi extension implementation by Arjen de Rijke (a.de.rijke@xs4all.nl)Based on adodb 3.40*/ if (! defined("_ADODB_MYSQL_LAYER")) { define("_ADODB_MYSQL_LAYER", 1 ); class ADODB_mysqli extends ADOConnection {	var $databaseType = 'mysqli';	var $dataProvider = 'native';	var $hasInsertID = true;	var $hasAffectedRows = true;		var $metaTablesSQL = "SHOW TABLES";		var $metaColumnsSQL = "SHOW COLUMNS FROM %s";	var $fmtTimeStamp = "'Y-m-d H:i:s'";	var $hasLimit = true;	var $hasMoveFirst = true;	var $hasGenID = true;	var $upperCase = 'upper';	var $isoDates = true; // accepts dates in ISO format	var $sysDate = 'CURDATE()';	var $sysTimeStamp = 'NOW()';	var $hasTransactions = false;	var $forceNewConnect = false;	var $poorAffectedRows = true;	var $clientFlags = 0;	var $executeOnly = true;	var $substr = "substring";	var $nameQuote = '`';		/// string to use to quote identifiers and names	//var $_bindInputArray = true;		function ADODB_mysqli() 	{				  if(!extension_loaded("mysqli"))	    {	      trigger_error("You must have the MySQLi extension.", E_USER_ERROR);	    }	}		function IfNull( $field, $ifNull ) 	{		return " IFNULL($field, $ifNull) "; // if MySQL	}		function ServerInfo()	{		$arr['description'] = $this->GetOne("select version()");		$arr['version'] = ADOConnection::_findvers($arr['description']);		return $arr;	}			function BeginTrans()	{	  		if ($this->transOff) return true;		$this->transCnt += 1;		$this->Execute('SET AUTOCOMMIT=0');		$this->Execute('BEGIN');		return true;	}		function CommitTrans($ok=true) 	{		if ($this->transOff) return true; 		if (!$ok) return $this->RollbackTrans();				if ($this->transCnt) $this->transCnt -= 1;		$this->Execute('COMMIT');		$this->Execute('SET AUTOCOMMIT=1');		return true;	}		function RollbackTrans()	{		if ($this->transOff) return true;		if ($this->transCnt) $this->transCnt -= 1;		$this->Execute('ROLLBACK');		$this->Execute('SET AUTOCOMMIT=1');		return true;	}		// if magic quotes disabled, use mysql_real_escape_string()	// From readme.htm:	// Quotes a string to be sent to the database. The $magic_quotes_enabled	// parameter may look funny, but the idea is if you are quoting a 	// string extracted from a POST/GET variable, then 	// pass get_magic_quotes_gpc() as the second parameter. This will 	// ensure that the variable is not quoted twice, once by qstr and once 	// by the magic_quotes_gpc.	//	//Eg. $s = $db->qstr(HTTP_GET_VARS['name'],get_magic_quotes_gpc());	function qstr($s, $magic_quotes = false)	{	  if (!$magic_quotes) {	    if (ADODB_PHPVER >= 0x5000) {	    //  $this->_connectionID = $this->mysqli_resolve_link($this->_connectionID);	      return "'" . mysqli_real_escape_string($this->_connectionID, $s) . "'";	    }	    else	      {		trigger_error("phpver < 5 not implemented", E_USER_ERROR);	      }	    	    if ($this->replaceQuote[0] == '\\')	      {		$s = adodb_str_replace(array('\\',"\0"),array('\\\\',"\\\0"),$s);	      }	    return  "'".str_replace("'",$this->replaceQuote,$s)."'"; 	  }	  // undo magic quotes for "	  $s = str_replace('\\"','"',$s);	  return "'$s'";	}		function _insertid()	{//	  $this->_connectionID = $this->mysqli_resolve_link($this->_connectionID);	  $result = @mysqli_insert_id($this->_connectionID);	  if ($result == -1){	      if ($this->debug) ADOConnection::outp("mysqli_insert_id() failed : "  . $this->ErrorMsg());	  }	  return $result;	}		// Only works for INSERT, UPDATE and DELETE query's	function _affectedrows()	{	//  $this->_connectionID = $this->mysqli_resolve_link($this->_connectionID);	  $result =  @mysqli_affected_rows($this->_connectionID);	  if ($result == -1) {	      if ($this->debug) ADOConnection::outp("mysqli_affected_rows() failed : "  . $this->ErrorMsg());	  }	  return $result;	}   	// See http://www.mysql.com/doc/M/i/Miscellaneous_functions.html	// Reference on Last_Insert_ID on the recommended way to simulate sequences 	var $_genIDSQL = "update %s set id=LAST_INSERT_ID(id+1);";	var $_genSeqSQL = "create table %s (id int not null)";	var $_genSeq2SQL = "insert into %s values (%s)";	var $_dropSeqSQL = "drop table %s";		function CreateSequence($seqname='adodbseq',$startID=1)	{		if (empty($this->_genSeqSQL)) return false;		$u = strtoupper($seqname);				$ok = $this->Execute(sprintf($this->_genSeqSQL,$seqname));		if (!$ok) return false;		return $this->Execute(sprintf($this->_genSeq2SQL,$seqname,$startID-1));	}		function GenID($seqname='adodbseq',$startID=1)	{		// post-nuke sets hasGenID to false		if (!$this->hasGenID) return false;				$getnext = sprintf($this->_genIDSQL,$seqname);		$holdtransOK = $this->_transOK; // save the current status		$rs = @$this->Execute($getnext);		if (!$rs) {			if ($holdtransOK) $this->_transOK = true; //if the status was ok before reset			$u = strtoupper($seqname);			$this->Execute(sprintf($this->_genSeqSQL,$seqname));			$this->Execute(sprintf($this->_genSeq2SQL,$seqname,$startID-1));			$rs = $this->Execute($getnext);		}		$this->genID = mysqli_insert_id($this->_connectionID);				if ($rs) $rs->Close();				return $this->genID;	}	  	function &MetaDatabases()	  {	    $query = "SHOW DATABASES";	    $ret =& $this->Execute($query);		return $ret;	  }	  	function &MetaIndexes ($table, $primary = FALSE)	{	        // save old fetch mode	        global $ADODB_FETCH_MODE;	        	        $save = $ADODB_FETCH_MODE;	        $ADODB_FETCH_MODE = ADODB_FETCH_NUM;	        if ($this->fetchMode !== FALSE) {	               $savem = $this->SetFetchMode(FALSE);	        }	        	        // get index details	        $rs = $this->Execute(sprintf('SHOW INDEXES FROM %s',$table));	        	        // restore fetchmode	        if (isset($savem)) {	                $this->SetFetchMode($savem);	        }	        $ADODB_FETCH_MODE = $save;	        	        if (!is_object($rs)) {	                return FALSE;	        }	        	        $indexes = array ();	        	        // parse index data into array	        while ($row = $rs->FetchRow()) {	                if ($primary == FALSE AND $row[2] == 'PRIMARY') {	                        continue;	                }	                	                if (!isset($indexes[$row[2]])) {	                        $indexes[$row[2]] = array(	                                'unique' => ($row[1] == 0),	                                'columns' => array()	                        );	                }	                	                $indexes[$row[2]]['columns'][$row[3] - 1] = $row[4];	        }	        	        // sort columns by order in the index	        foreach ( array_keys ($indexes) as $index )	        {	                ksort ($indexes[$index]['columns']);	        }	        	        return $indexes;	}		// Format date column in sql string given an input format that understands Y M D	function SQLDate($fmt, $col=false)	{			if (!$col) $col = $this->sysTimeStamp;		$s = 'DATE_FORMAT('.$col.",'";		$concat = false;		$len = strlen($fmt);		for ($i=0; $i < $len; $i++) {			$ch = $fmt[$i];			switch($ch) {			case 'Y':			case 'y':				$s .= '%Y';				break;			case 'Q':			case 'q':				$s .= "'),Quarter($col)";								if ($len > $i+1) $s .= ",DATE_FORMAT($col,'";				else $s .= ",('";				$concat = true;				break;			case 'M':				$s .= '%b';				break;							case 'm':				$s .= '%m';				break;			case 'D':			case 'd':				$s .= '%d';				break;						case 'H': 				$s .= '%H';				break;							case 'h':				$s .= '%I';				break;							case 'i':				$s .= '%i';				break;							case 's':				$s .= '%s';				break;							case 'a':			case 'A':				$s .= '%p';				break;							default:								if ($ch == '\\') {					$i++;					$ch = substr($fmt,$i,1);				}				$s .= $ch;				break;			}		}		$s.="')";		if ($concat) $s = "CONCAT($s)";		return $s;	}		// returns concatenated string	// much easier to run "mysqld --ansi" or "mysqld --sql-mode=PIPES_AS_CONCAT" and use || operator	function Concat()	{		$s = "";		$arr = func_get_args();				// suggestion by andrew005@mnogo.ru		$s = implode(',',$arr); 		if (strlen($s) > 0) return "CONCAT($s)";		else return '';	}		// dayFraction is a day in floating point	function OffsetDate($dayFraction,$date=false)	{				if (!$date) 		  $date = $this->sysDate;		return "from_unixtime(unix_timestamp($date)+($dayFraction)*24*3600)";	}		// returns true or false	// To add: parameter int $port,	//         parameter string $socket	function _connect($argHostname = NULL, 			  $argUsername = NULL, 			  $argPassword = NULL, 			  $argDatabasename = NULL)	  {	    // @ means: error surpression on	    $this->_connectionID = @mysqli_init();	    	    if (is_null($this->_connectionID))	    {	      // mysqli_init only fails if insufficient memory	      if ($this->debug) 		ADOConnection::outp("mysqli_init() failed : "  . $this->ErrorMsg());	      return false;	    }	    // Set connection options	    // Not implemented now	    // mysqli_options($this->_connection,,); 	    if (mysqli_real_connect($this->_connectionID, 				    $argHostname, 				    $argUsername, 				    $argPassword, 				    $argDatabasename)) 	      { 		if ($argDatabasename) 		  {		    return $this->SelectDB($argDatabasename);		  }		 		return true; 	      } 	    else	      {		if ($this->debug) 		  ADOConnection::outp("Could't connect : "  . $this->ErrorMsg());		return false;	      }	  }		// returns true or false	// How to force a persistent connection	function _pconnect($argHostname, $argUsername, $argPassword, $argDatabasename)	  {	    // not implemented in mysqli (yet)?	    $this->_connectionID = mysqli_connect($argHostname,						  $argUsername,						  $argPassword,						  $argDatabasename);	    if ($this->_connectionID === false) return false;	    //	    if ($this->autoRollback) $this->RollbackTrans();	    if ($argDatabasename) return $this->SelectDB($argDatabasename);	    return true;		  }		// When is this used? Close old connection first?	// In _connect(), check $this->forceNewConnect? 	function _nconnect($argHostname, $argUsername, $argPassword, $argDatabasename)	  {	    $this->forceNewConnect = true;	    $this->_connect($argHostname, $argUsername, $argPassword, $argDatabasename);	  }	 	function &MetaColumns($table) 	{	  if ($this->metaColumnsSQL) {	    global $ADODB_FETCH_MODE;	    $save = $ADODB_FETCH_MODE;	    $rs = false;	    switch($ADODB_FETCH_MODE)	      {	      case ADODB_FETCH_NUM:		$ADODB_FETCH_MODE = ADODB_FETCH_NUM;		$rs = $this->Execute(sprintf($this->metaColumnsSQL,					     $table));				$ADODB_FETCH_MODE = $save;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品影视天天线| 欧美激情在线观看视频免费| 成人免费高清视频| 国产高清精品网站| 国产ts人妖一区二区| 国产成人免费视频网站高清观看视频 | 精品成a人在线观看| 日韩精品一区二区三区swag| 一区免费观看视频| 国产精品毛片a∨一区二区三区| 日韩欧美三级在线| 久久午夜电影网| 国产日韩欧美高清在线| 欧美高清在线一区| 亚洲欧美日韩国产一区二区三区 | 精品sm在线观看| 久久精品人人做人人爽97| 久久九九影视网| 亚洲视频在线观看三级| 夜夜揉揉日日人人青青一国产精品| 亚洲最新视频在线播放| 日日夜夜精品视频天天综合网| 日本成人在线一区| 国产毛片一区二区| 91美女精品福利| 粉嫩av一区二区三区| 国产日韩av一区二区| 中文字幕精品一区| 亚洲电影视频在线| 激情综合色综合久久| 成人性生交大合| 欧美日韩国产另类不卡| 久久久www成人免费无遮挡大片| 中文字幕一区二区在线播放| 丝袜美腿亚洲综合| 成人理论电影网| 7777精品伊人久久久大香线蕉完整版 | 国产精品免费免费| 日精品一区二区| 成人av在线资源网站| 欧美丰满一区二区免费视频 | 亚洲激情欧美激情| 一区二区在线观看视频| 日本91福利区| 成人av电影免费观看| 欧美蜜桃一区二区三区| 国产精品天美传媒沈樵| 麻豆国产欧美日韩综合精品二区| 成人在线综合网| 日韩一二三区不卡| 亚洲免费视频成人| 国产成人av一区| 制服丝袜日韩国产| 亚洲在线成人精品| bt欧美亚洲午夜电影天堂| 欧美刺激午夜性久久久久久久| 综合av第一页| 成人avav影音| 久久蜜臀精品av| 蜜桃视频在线一区| 制服丝袜中文字幕一区| 一区二区日韩电影| 91香蕉视频在线| 国产精品午夜免费| 国产91精品一区二区| 精品国产青草久久久久福利| 天堂一区二区在线| 欧美亚洲综合色| 一区二区在线看| 91亚洲国产成人精品一区二区三| 国产精品视频yy9299一区| 国产高清不卡一区| 精品剧情v国产在线观看在线| 日韩精品亚洲一区二区三区免费| 欧美在线观看视频在线| 亚洲综合丝袜美腿| 欧美在线观看你懂的| 亚洲男女毛片无遮挡| 色婷婷久久久亚洲一区二区三区| 国产精品国产三级国产| 99视频在线观看一区三区| 国产精品久久久久国产精品日日 | 成人黄色av网站在线| 国产精品美女一区二区在线观看| 国产精品影视网| 国产精品你懂的| 一本一道综合狠狠老| 一个色妞综合视频在线观看| 欧美三区免费完整视频在线观看| 午夜亚洲福利老司机| 91精品视频网| 国产精品中文字幕欧美| 亚洲精品乱码久久久久| 久久一二三国产| 国产精品原创巨作av| 26uuu精品一区二区| 成人国产精品免费观看动漫| 综合激情成人伊人| 欧美男男青年gay1069videost| 肉色丝袜一区二区| 国产亚洲欧美日韩在线一区| 波多野结衣精品在线| 亚洲一区二区三区四区中文字幕| 在线精品视频免费观看| 久久精品国产免费| 国产精品乱人伦一区二区| 色一区在线观看| 精品影院一区二区久久久| 国产精品私人影院| 欧美丰满嫩嫩电影| 懂色一区二区三区免费观看| 亚洲国产一区二区三区| 精品国产伦理网| 色综合欧美在线视频区| 久久精品国产免费看久久精品| 制服丝袜av成人在线看| 亚洲美女视频在线| 91麻豆精品国产91久久久| 国产精品亚洲第一| 亚洲成a人v欧美综合天堂下载| 精品免费日韩av| 欧美日韩免费一区二区三区| 国产成a人亚洲精品| 日韩成人一级片| 中文字幕一区av| 久久综合久久99| 欧美肥胖老妇做爰| 日本丶国产丶欧美色综合| 国产乱一区二区| 日本最新不卡在线| 亚洲靠逼com| 日本一区二区电影| www国产成人| 国产一区二区三区黄视频| 亚洲乱码国产乱码精品精小说 | 欧美日韩亚洲综合一区| 成人性生交大片免费看中文网站| 久久精品国产秦先生| 午夜视频在线观看一区| 亚洲日本护士毛茸茸| 国产精品污www在线观看| 久久久亚洲综合| 精品日韩一区二区| 日韩精品一区二区三区中文精品| 在线观看国产91| 色狠狠桃花综合| 91女神在线视频| 色哟哟国产精品| 色综合久久久久综合| 91猫先生在线| 一道本成人在线| 91久久一区二区| 欧洲日韩一区二区三区| 欧美日韩一区二区三区在线| 91视频你懂的| 欧美三级在线看| 欧美男生操女生| 日韩一级高清毛片| 日韩精品中文字幕一区| 日韩美女一区二区三区四区| 日韩精品中午字幕| 久久色成人在线| 日本一区二区三区在线不卡| 国产精品久久久久久亚洲伦| 亚洲一区二区三区四区中文字幕| 国产福利一区在线| 精品在线播放午夜| 国产精品一区免费在线观看| 高清不卡一区二区在线| 不卡一区二区三区四区| 色呦呦日韩精品| 7878成人国产在线观看| 日韩一级片在线播放| 亚洲精品在线观| 亚洲欧洲三级电影| 亚洲在线免费播放| 精品一区二区av| 99热在这里有精品免费| 欧美体内she精视频| 精品国产乱码久久| 成人欧美一区二区三区黑人麻豆 | 粉嫩久久99精品久久久久久夜| 99国产精品99久久久久久| 日本韩国视频一区二区| 欧美一区二视频| 欧美激情一区二区| 亚洲成人免费视频| 国产精一品亚洲二区在线视频| 色综合久久久久综合体| 日韩欧美一二三四区| 日韩一区欧美小说| 蜜桃av一区二区三区| 成人18视频在线播放| 91精品国产综合久久久久久久久久| 国产亚洲综合在线| 日韩黄色免费网站| 欧美三级在线视频| 欧美一区二区在线免费观看| 亚洲欧洲在线观看av| 日本免费新一区视频 |