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

📄 db.inc.php

📁 功能齐全
💻 PHP
字号:
<?php
class DB
{
	var $host;
	var $user;
	var $pass;
	var $database;
	var $pconnect = 0;
	var $conn = '';
	var $queryId = '';
	var $sql;
	var $result = "";

	function DB( $host = "", $user = "", $pass = "", $database = "", $pconnect = "" )
	{
		if ( $host != "" ) $this->host = $host;
		if ( $user != "" ) $this->user = $user;
		if ( $pass != "" ) $this->pass = $pass;
		if ( $database != "" ) $this->database = $database;
		if ( $pconnect !== "" ) $this->pconnect = $pconnect;
	}

	function connect()
	{
		$this->conn = $this->pconnect ? @ mysql_pconnect( $this->host, $this->user, $this->pass )
		: @ mysql_connect ( $this->host, $this->user, $this->pass ) ;

		if ( !$this->conn ) {
			return ("erro:no mysql connection");
		}

		$this->selectdb();

		return $this->conn;
	}

	function selectdb( $database = '' )
	{
		if ( $database != "" && $database != $this->database ) {
			$this->database = $database;
		}

		if ( ! @ mysql_select_db( $this->database, $this->conn ) ) {
			return ("erro:can not get the database");
		}
	}

	function query( $sql = "", $database = "" )
	{
		if ( $sql != "" ) $this->sql = $sql;

		if ( $database != "" && $database != $this->database ) {
			$olddb = $this->database;
			$this->selectdb( $database );
		}

		$this->queryId = @ mysql_query( $this->sql, $this->conn );

		if ( mysql_error() != "" ) {
			return ("erro:sql <br>".$this->sql);
		}

		if ( !empty( $olddb ) ) $this->selectdb( $olddb );

		return $this->queryId;
	}

	function fetch_array( $queryId = '', $type = MYSQL_ASSOC )
	{
		if ( $queryId == '' )$queryId = $this->queryId;

		$row = @mysql_fetch_array( $queryId, $type );

		return $row;
	}

	function num_rows( $queryId = '' )
	{
		if ( $queryId == '' )$queryId = $this->queryId;

		$num = mysql_num_rows( $queryId );

		return $num;
	}

	function free_result( $queryId = '' )
	{
		if ( $queryId == '' )$queryId = $this->queryId;

		mysql_free_result( $queryId );
	}

	function getData( $queryId = '', $type = MYSQL_ASSOC )
	{
		if ( $queryId == '' )$queryId = $this->queryId;

		while ( $row = @mysql_fetch_array( $queryId, $type ) ) {
			$data[] = $row;
		}

		@mysql_free_result( $queryId );

		if ( mysql_error() != "" ) {
			return ("erro:can not mysql_free_result");
		}

		return $this->result = $data;
	}

	function insert_id()
	{
		return mysql_insert_id();
	}

	function affected_rows()
	{
		return mysql_affected_rows();
	}

	function getTables( $dbname )
	{
		$q = $this->query( "SHOW TABLES FROM $dbname" );

		while ( $table = $this->fetch_array( $q, MYSQL_NUM ) ) {
			echo $array[] = $table[0];
		}

		return $array;
	}

	function close()
	{
		mysql_close( $this->conn );
	}

	function createSql( $table, $data, $action = 'insert', $parameters = '' )
	{
		reset( $data );
		if ( $action == 'insert' ) {
			$query = 'insert into `' . $table . '` (';

			$keystr = $valstr = '';
			while ( list( $columns, $value ) = each( $data ) ) {
				$keystr .= '`' . $columns . '`, ';
				switch ( ( string )$value ) {
					case 'now()':
					$valstr .= 'now(), ';
					break;
					case 'null':
					$valstr .= 'null, ';
					break;
					default:
					$valstr .= '\'' . $value  . '\', ';
					break;
				}
			}
			$query .= substr( $keystr, 0, -2 ) . ') values (' . substr( $valstr, 0, -2 ) . ')';
		} elseif ( $action == 'update' ) {
			$query = 'update `' . $table . '` set ';
			while ( list( $columns, $value ) = each( $data ) ) {
				switch ( ( string )$value ) {
					case 'now()':
					$query .= '`' . $columns . '` = now(), ';
					break;
					case 'null':
					$query .= '`' . $columns .= '` = null, ';
					break;
					default:
					$query .= '`' . $columns . '` = \'' . $value  . '\', ';
					break;
				}
			}
			$query = substr( $query, 0, -2 ) . ' where ' . $parameters;
		}

		return $query ;
	}

	function input( $string )
	{
		if(!Get_Magic_Quotes_GPC())$string = addslashes( $string );
		return $string;
	}

	function output( $string )
	{
		$string = htmlspecialchars( $string );
		$string=str_replace(" ","&nbsp;",$string); //替换空格替换为&nbsp;
		$string=nl2br($string); //将回车替换为<br>
		return  $string;
	}

	function backup($dir='')
	{
		if (empty($dir)) $dir = DIR_FS_BACKUP;

		set_time_limit( 0 );

		$backup_file = 'db_' . $this->database . '-' . date( 'YmdHis' ) . '.sql';

		$fp = @fopen($dir . $backup_file, 'w');

		$schema = "# Database: " . $this->database . "\n# Database Server: " . $this->host . "\n#\n# Backup Date:" . date( 'Y-m-d' ) . "\n\n";
		fputs( $fp, $schema );

		$tables_query = $this->query( "show tables from `" . $this->database . "`" );
		$tables = $this->fetch_array( $tables_query );

		while ( $tables = $this->fetch_array( $tables_query ) ) {
			list( , $table ) = each( $tables );

			$schema = 'drop table if exists `' . $table . '`;' . "\n" . 'create table `' . $table . '` (' . "\n";

			$table_list = array();
			$fields_query = $this->query( "show fields from `" . $table ."`");
			while ( $fields = $this->fetch_array( $fields_query ) ) {
				$table_list[] = $fields['Field'];

				$schema .= '  ' . $fields['Field'] . ' ' . $fields['Type'];

				if ( strlen( $fields['Default'] ) > 0 ) $schema .= ' default \'' . $fields['Default'] . '\'';

				if ( $fields['Null'] != 'YES' ) $schema .= ' not null';

				if ( isset( $fields['Extra'] ) ) $schema .= ' ' . $fields['Extra'];

				$schema .= ',' . "\n";
			}

			$schema = ereg_replace( ",\n$", '', $schema );
			// add the keys
			$index = array();
			$keys_query = $this->query( "show keys from `" . $table ."`");
			while ( $keys = $this->fetch_array( $keys_query ) ) {
				$kname = $keys['Key_name'];

				if ( !isset( $index[$kname] ) ) {
					$index[$kname] = array( 'unique' => !$keys['Non_unique'],
					'columns' => array() );
				}

				$index[$kname]['columns'][] = $keys['Column_name'];
			} while ( list( $kname, $info ) = each( $index ) ) {
				$schema .= ',' . "\n";

				$columns = implode( '`,`',  $info['columns']);

				if ( $kname == 'PRIMARY' ) {
					$schema .= '  PRIMARY KEY (`' . $columns . '`)';
				} elseif ( $info['unique'] ) {
					$schema .= '  UNIQUE ' . $kname . ' (`' . $columns . '`)';
				} else {
					$schema .= '  KEY ' . $kname . ' (`' . $columns . '`)';
				}
			}

			$schema .= "\n" . ');' . "\n\n";
			fputs( $fp, $schema );
			// dump the data
			$rows_query = $this->query( "select `" . implode( '`,`', $table_list ) . "` from " . $table );
			while ( $rows = $this->fetch_array( $rows_query ) ) {
				$schema = 'insert into `' . $table . '` (`' . implode( '`, `', $table_list ) . '`) values (';

				reset( $table_list );
				while ( list( , $i ) = each( $table_list ) ) {
					if ( !isset( $rows[$i] ) ) {
						$schema .= 'NULL, ';
					} elseif ( !empty( $rows[$i] ) ) {
						$row = addslashes( $rows[$i] );
						$row = ereg_replace( "\n#", "\n" . '\#', $row );

						$schema .= '\'' . $row . '\', ';
					} else {
						$schema .= '\'\', ';
					}
				}

				$schema = ereg_replace( ', $', '', $schema ) . ');' . "\n";
				fputs( $fp, $schema );
			}
		}

		fclose( $fp );
	}
} //end class
?>

⌨️ 快捷键说明

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