📄 db.inc.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(" "," ",$string); //替换空格替换为
$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 + -