⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adodb-mysql.inc.php

📁 Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。 它通过snmpget来获取数据
💻 PHP
📖 第 1 页 / 共 2 页
字号:
	// returns true or false	function _pconnect($argHostname, $argUsername, $argPassword, $argDatabasename)	{		if (ADODB_PHPVER >= 0x4300)			$this->_connectionID = @mysql_pconnect($argHostname,$argUsername,$argPassword,$this->clientFlags);		else			$this->_connectionID = @mysql_pconnect($argHostname,$argUsername,$argPassword);		if ($this->_connectionID === false) return false;		if ($this->autoRollback) $this->RollbackTrans();		if ($argDatabasename) return $this->SelectDB($argDatabasename);		return true;	}	function _nconnect($argHostname, $argUsername, $argPassword, $argDatabasename)	{		$this->forceNewConnect = true;		return $this->_connect($argHostname, $argUsername, $argPassword, $argDatabasename);	} 	function &MetaColumns($table)	{		global $ADODB_FETCH_MODE;		$save = $ADODB_FETCH_MODE;		$ADODB_FETCH_MODE = ADODB_FETCH_NUM;		if ($this->fetchMode !== false) $savem = $this->SetFetchMode(false);		$rs = $this->Execute(sprintf($this->metaColumnsSQL,$table));		if (isset($savem)) $this->SetFetchMode($savem);		$ADODB_FETCH_MODE = $save;		if (!is_object($rs)) {			$false = false;			return $false;		}		$retarr = array();		while (!$rs->EOF){			$fld = new ADOFieldObject();			$fld->name = $rs->fields[0];			$type = $rs->fields[1];			// split type into type(length):			$fld->scale = null;			if (preg_match("/^(.+)\((\d+),(\d+)/", $type, $query_array)) {				$fld->type = $query_array[1];				$fld->max_length = is_numeric($query_array[2]) ? $query_array[2] : -1;				$fld->scale = is_numeric($query_array[3]) ? $query_array[3] : -1;			} elseif (preg_match("/^(.+)\((\d+)/", $type, $query_array)) {				$fld->type = $query_array[1];				$fld->max_length = is_numeric($query_array[2]) ? $query_array[2] : -1;			} else {				$fld->type = $type;				$fld->max_length = -1;			}			$fld->not_null = ($rs->fields[2] != 'YES');			$fld->primary_key = ($rs->fields[3] == 'PRI');			$fld->auto_increment = (strpos($rs->fields[5], 'auto_increment') !== false);			$fld->binary = (strpos($type,'blob') !== false);			$fld->unsigned = (strpos($type,'unsigned') !== false);			if (!$fld->binary) {				$d = $rs->fields[4];				if ($d != '' && $d != 'NULL') {					$fld->has_default = true;					$fld->default_value = $d;				} else {					$fld->has_default = false;				}			}			if ($save == ADODB_FETCH_NUM) {				$retarr[] = $fld;			} else {				$retarr[strtoupper($fld->name)] = $fld;			}				$rs->MoveNext();			}			$rs->Close();			return $retarr;	}	// returns true or false	function SelectDB($dbName)	{		$this->databaseName = $dbName;		if ($this->_connectionID) {			return @mysql_select_db($dbName,$this->_connectionID);		}		else return false;	}	// parameters use PostgreSQL convention, not MySQL	function &SelectLimit($sql,$nrows=-1,$offset=-1,$inputarr=false,$secs=0)	{		$offsetStr =($offset>=0) ? "$offset," : '';		// jason judge, see http://phplens.com/lens/lensforum/msgs.php?id=9220		if ($nrows < 0) $nrows = '18446744073709551615';		if ($secs)			$rs =& $this->CacheExecute($secs,$sql." LIMIT $offsetStr$nrows",$inputarr);		else			$rs =& $this->Execute($sql." LIMIT $offsetStr$nrows",$inputarr);		return $rs;	}	// returns queryID or false	function _query($sql,$inputarr)	{	//global $ADODB_COUNTRECS;		//if($ADODB_COUNTRECS)		return mysql_query($sql,$this->_connectionID);		//else return @mysql_unbuffered_query($sql,$this->_connectionID); // requires PHP >= 4.0.6	}	/*	Returns: the last error message from previous database operation	*/	function ErrorMsg()	{		if ($this->_logsql) return $this->_errorMsg;		if (empty($this->_connectionID)) $this->_errorMsg = @mysql_error();		else $this->_errorMsg = @mysql_error($this->_connectionID);		return $this->_errorMsg;	}	/*	Returns: the last error number from previous database operation	*/	function ErrorNo()	{		if ($this->_logsql) return $this->_errorCode;		if (empty($this->_connectionID))  return @mysql_errno();		else return @mysql_errno($this->_connectionID);	}	// returns true or false	function _close()	{		@mysql_close($this->_connectionID);		$this->_connectionID = false;	}	/*	* Maximum size of C field	*/	function CharMax()	{		return 255;	}	/*	* Maximum size of X field	*/	function TextMax()	{		return 4294967295;	}}/*--------------------------------------------------------------------------------------	 Class Name: Recordset--------------------------------------------------------------------------------------*/class ADORecordSet_mysql extends ADORecordSet{	var $databaseType = "mysql";	var $canSeek = true;	function ADORecordSet_mysql($queryID,$mode=false)	{		if ($mode === false) {			global $ADODB_FETCH_MODE;			$mode = $ADODB_FETCH_MODE;		}		switch ($mode)		{		case ADODB_FETCH_NUM: $this->fetchMode = MYSQL_NUM; break;		case ADODB_FETCH_ASSOC:$this->fetchMode = MYSQL_ASSOC; break;		default:		case ADODB_FETCH_DEFAULT:		case ADODB_FETCH_BOTH:$this->fetchMode = MYSQL_BOTH; break;		}		$this->adodbFetchMode = $mode;		$this->ADORecordSet($queryID);	}	function _initrs()	{	//GLOBAL $ADODB_COUNTRECS;	//	$this->_numOfRows = ($ADODB_COUNTRECS) ? @mysql_num_rows($this->_queryID):-1;		$this->_numOfRows = @mysql_num_rows($this->_queryID);		$this->_numOfFields = @mysql_num_fields($this->_queryID);	}	function &FetchField($fieldOffset = -1)	{		if ($fieldOffset != -1) {			$o = @mysql_fetch_field($this->_queryID, $fieldOffset);			$f = @mysql_field_flags($this->_queryID,$fieldOffset);			$o->max_length = @mysql_field_len($this->_queryID,$fieldOffset); // suggested by: Jim Nicholson (jnich@att.com)			//$o->max_length = -1; // mysql returns the max length less spaces -- so it is unrealiable			$o->binary = (strpos($f,'binary')!== false);		}		else if ($fieldOffset == -1) {	/*	The $fieldOffset argument is not provided thus its -1 	*/			$o = @mysql_fetch_field($this->_queryID);			$o->max_length = @mysql_field_len($this->_queryID); // suggested by: Jim Nicholson (jnich@att.com)			//$o->max_length = -1; // mysql returns the max length less spaces -- so it is unrealiable		}		return $o;	}	function &GetRowAssoc($upper=true)	{		if ($this->fetchMode == MYSQL_ASSOC && !$upper) return $this->fields;		$row =& ADORecordSet::GetRowAssoc($upper);		return $row;	}	/* Use associative array to get fields array */	function Fields($colname)	{		// added @ by "Michael William Miller" <mille562@pilot.msu.edu>		if ($this->fetchMode != MYSQL_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 _seek($row)	{		if ($this->_numOfRows == 0) return false;		return @mysql_data_seek($this->_queryID,$row);	}	function MoveNext()	{		//return adodb_movenext($this);		//if (defined('ADODB_EXTENSION')) return adodb_movenext($this);		if (@$this->fields =& mysql_fetch_array($this->_queryID,$this->fetchMode)) {			$this->_currentRow += 1;			return true;		}		if (!$this->EOF) {			$this->_currentRow += 1;			$this->EOF = true;		}		return false;	}	function _fetch()	{		$this->fields =  @mysql_fetch_array($this->_queryID,$this->fetchMode);		return is_array($this->fields);	}	function _close() {		@mysql_free_result($this->_queryID);		$this->_queryID = false;	}	function MetaType($t,$len=-1,$fieldobj=false)	{		if (is_object($t)) {			$fieldobj = $t;			$t = $fieldobj->type;			$len = $fieldobj->max_length;		}		$len = -1; // mysql max_length is not accurate		switch (strtoupper($t)) {		case 'STRING':		case 'CHAR':		case 'VARCHAR':		case 'TINYBLOB':		case 'TINYTEXT':		case 'ENUM':		case 'SET':			if ($len <= $this->blobSize) return 'C';		case 'TEXT':		case 'LONGTEXT':		case 'MEDIUMTEXT':			return 'X';		// php_mysql extension always returns 'blob' even if 'text'		// so we have to check whether binary...		case 'IMAGE':		case 'LONGBLOB':		case 'BLOB':		case 'MEDIUMBLOB':			return !empty($fieldobj->binary) ? 'B' : 'X';		case 'YEAR':		case 'DATE': return 'D';		case 'TIME':		case 'DATETIME':		case 'TIMESTAMP': return 'T';		case 'INT':		case 'INTEGER':		case 'BIGINT':		case 'TINYINT':		case 'MEDIUMINT':		case 'SMALLINT':			if (!empty($fieldobj->primary_key)) return 'R';			else return 'I';		default: return 'N';		}	}}class ADORecordSet_ext_mysql extends ADORecordSet_mysql {	function ADORecordSet_ext_mysql($queryID,$mode=false)	{		if ($mode === false) {			global $ADODB_FETCH_MODE;			$mode = $ADODB_FETCH_MODE;		}		switch ($mode)		{		case ADODB_FETCH_NUM: $this->fetchMode = MYSQL_NUM; break;		case ADODB_FETCH_ASSOC:$this->fetchMode = MYSQL_ASSOC; break;		default:		case ADODB_FETCH_DEFAULT:		case ADODB_FETCH_BOTH:$this->fetchMode = MYSQL_BOTH; break;		}		$this->adodbFetchMode = $mode;		$this->ADORecordSet($queryID);	}	function MoveNext()	{		return @adodb_movenext($this);	}}}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -