php备份sql server 2008,一段php代码:备份、恢复sql数据库(支持sql文本,zip。。。)-PHP教程,数据库相关...

php代码:——————————————————————————–

require(includes/application_top.php);

if ($http_get_vars[action]) {

switch ($http_get_vars[action]) {

case forget:

tep_db_query("delete from " . table_configuration . " where configuration_key = db_last_restore");

$messagestack->add_session(success_last_restore_cleared, success);

tep_redirect(tep_href_link(filename_backup));

break;

case backupnow:

tep_set_time_limit(0);

$schema = # citespa, open source e-commerce solutions . "\n" .

# http://www.xxxxxx.com . "\n" .

# . "\n" .

# database backup for . store_name . "\n" .

# copyright (c) . date(y) . . store_owner . "\n" .

# . "\n" .

# database: . db_database . "\n" .

# database server: . db_server . "\n" .

# . "\n" .

# backup date: . date(php_date_time_format) . "\n\n";

$tables_query = tep_db_query(show tables);

while ($tables = tep_db_fetch_array($tables_query)) {

list(,$table) = each($tables);

$schema .= drop table if exists . $table . ; . "\n" .

create table . $table . ( . "\n";

$table_list = array();

$fields_query = tep_db_query("show fields from " . $table);

while ($fields = tep_db_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 = tep_db_query("show keys from " . $table);

while ($keys = tep_db_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";

// dump the data

$rows_query = tep_db_query("select " . implode(,, $table_list) . " from " . $table);

while ($rows = tep_db_fetch_array($rows_query)) {

$schema_insert = insert into . $table . ( . implode(, , $table_list) . ) values (;

reset($table_list);

while (list(,$i) = each($table_list)) {

if (!isset($rows[$i])) {

$schema_insert .= null, ;

} elseif ($rows[$i] != ) {

$row = addslashes($rows[$i]);

$row = ereg_replace("\n#", "\n".#, $row);

$schema_insert .= . $row . , ;

} else {

$schema_insert .= , ;

}

}

$schema_insert = ereg_replace(, $, , $schema_insert) . ); . "\n";

$schema .= $schema_insert;

}

$schema .= "\n";

}

if ($http_post_vars[download] == yes) {

$backup_file = db_ . db_database . – . date(ymdhis) . .sql;

switch ($http_post_vars[compress]) {

case no:

header(content-type: application/x-octet-stream);

header(content-disposition: attachment; filename= . $backup_file);

echo $schema;

exit;

break;

case gzip:

if ($fp = fopen(dir_fs_backup . $backup_file, w)) {

fputs($fp, $schema);

fclose($fp);

exec(local_exe_gzip . . dir_fs_backup . $backup_file);

$backup_file .= .gz;

}

if ($fp = fopen(dir_fs_backup . $backup_file, rb)) {

$buffer = fread($fp, filesize(dir_fs_backup . $backup_file));

fclose($fp);

unlink(dir_fs_backup . $backup_file);

header(content-type: application/x-octet-stream);

header(content-disposition: attachment; filename= . $backup_file);

echo $buffer;

exit;

}

break;

case zip:

if ($fp = fopen(dir_fs_backup . $backup_file, w)) {

fputs($fp, $schema);

fclose($fp);

exec(local_exe_zip . -j . dir_fs_backup . $backup_file . .zip . dir_fs_backup . $backup_file);

unlink(dir_fs_backup . $backup_file);

$backup_file .= .zip;

}

if ($fp = fopen(dir_fs_backup . $backup_file, rb)) {

$buffer = fread($fp, filesize(dir_fs_backup . $backup_file));

fclose($fp);

unlink(dir_fs_backup . $backup_file);

header(content-type: application/x-octet-stream);

header(content-disposition: attachment; filename= . $backup_file);

echo $buffer;

exit;

}

}

} else {

$backup_file = dir_fs_backup . db_ . db_database . – . date(ymdhis) . .sql;

if ($fp = fopen($backup_file, w)) {

fputs($fp, $schema);

fclose($fp);

switch ($http_post_vars[compress]) {

case gzip:

exec(local_exe_gzip . . $backup_file);

break;

case zip:

exec(local_exe_zip . -j . $backup_file . .zip . $backup_file);

unlink($backup_file);

}

}

$messagestack->add_session(success_database_saved, success);

tep_redirect(tep_href_link(filename_backup));

}

break;

case restorenow:

case restorelocalnow:

tep_set_time_limit(0);

if ($http_get_vars[action] == restorenow) {

$read_from = $http_get_vars[file];

if (file_exists(dir_fs_backup . $http_get_vars[file])) {

$restore_file = dir_fs_backup . $http_get_vars[file];

$extension = substr($http_get_vars[file], -3);

if ( ($extension == sql) || ($extension == .gz) || ($extension == zip) ) {

switch ($extension) {

case sql:

$restore_from = $restore_file;

$remove_raw = false;

break;

case .gz:

$restore_from = substr($restore_file, 0, -3);

exec(local_exe_gunzip . . $restore_file . -c > . $restore_from);

$remove_raw = true;

break;

case zip:

$restore_from = substr($restore_file, 0, -4);

exec(local_exe_unzip . . $restore_file . -d . dir_fs_backup);

$remove_raw = true;

}

if ( ($restore_from) && (file_exists($restore_from)) && (filesize($restore_from) > 15000) ) {

$fd = fopen($restore_from, rb);

$restore_query = fread($fd, filesize($restore_from));

fclose($fd);

}

}

}

} elseif ($http_get_vars[action] == restorelocalnow) {

if ($http_post_files[sql_file]) {

$uploaded_file = $http_post_files[sql_file][tmp_name];

$read_from = basename($http_post_files[sql_file][name]);

} elseif ($http_post_vars[sql_file]) {

$uploaded_file = $http_post_vars[sql_file];

$read_from = basename($http_post_vars[sql_file_name]);

} else {

$uploaded_file = $sql_file;

$read_from = basename($sql_file_name);

}

if ($uploaded_file != none) {

if (tep_is_uploaded_file($uploaded_file)) {

$restore_query = fread(fopen($uploaded_file, r), filesize($uploaded_file));

}

}

}

if ($restore_query) {

$sql_array = array();

$sql_length = strlen($restore_query);

$pos = strpos($restore_query, ;);

for ($i=$pos; $i

if ($restore_query[0] == #) {

$restore_query = ltrim(substr($restore_query, strpos($restore_query, "\n")));

$sql_length = strlen($restore_query);

$i = strpos($restore_query, ;)-1;

continue;

}

if ($restore_query[($i+1)] == "\n") {

for ($j=($i+2); $j

if (trim($restore_query[$j]) != ) {

$next = substr($restore_query, $j, 6);

if ($next[0] == #) {

// find out where the break position is so we can remove this line (#comment line)

for ($k=$j; $k

if ($restore_query[$k] == "\n") break;

}

$query = substr($restore_query, 0, $i+1);

$restore_query = substr($restore_query, $k);

// join the query before the comment appeared, with the rest of the dump

$restore_query = $query . $restore_query;

$sql_length = strlen($restore_query);

$i = strpos($restore_query, ;)-1;

continue 2;

}

break;

}

}

if ($next == ) { // get the last insert query

$next = insert;

}

if ( (eregi(create, $next)) || (eregi(insert, $next)) || (eregi(drop t, $next)) ) {

$next = ;

$sql_array[] = substr($restore_query, 0, $i);

$restore_query = ltrim(substr($restore_query, $i+1));

$sql_length = strlen($restore_query);

$i = strpos($restore_query, ;)-1;

}

}

}

$tables_query = tep_db_query(show tables);

while ($tables = tep_db_fetch_array($tables_query)) {

list(,$table) = each($tables);

tep_db_query("drop table " . $table);

}

for ($i=0; $i

tep_db_query($sql_array[$i]);

}

tep_db_query("delete from " . table_configuration . " where configuration_key = db_last_restore");

tep_db_query("insert into " . table_configuration . " values (, last database restore, db_last_restore, " . $read_from . ", last database restore file, 6, , , now(), , )");

if ($remove_raw) {

unlink($restore_from);

}

}

$messagestack->add_session(success_database_restored, success);

tep_redirect(tep_href_link(filename_backup));

break;

case download:

$extension = substr($http_get_vars[file], -3);

if ( ($extension == zip) || ($extension == .gz) || ($extension == sql) ) {

if ($fp = fopen(dir_fs_backup . $http_get_vars[file], rb)) {

$buffer = fread($fp, filesize(dir_fs_backup . $http_get_vars[file]));

fclose($fp);

header(content-type: application/x-octet-stream);

header(content-disposition: attachment; filename= . $http_get_vars[file]);

echo $buffer;

exit;

}

} else {

$messagestack->add(error_download_link_not_acceptable, error);

}

break;

case deleteconfirm:

if (strstr($http_get_vars[file], ..)) tep_redirect(tep_href_link(filename_backup));

tep_remove(dir_fs_backup . / . $http_get_vars[file]);

if (!$tep_remove_error) {

$messagestack->add_session(success_backup_deleted, success);

tep_redirect(tep_href_link(filename_backup));

}

break;

}

}

// check if the backup directory exists

$dir_ok = false;

if (is_dir(dir_fs_backup)) {

$dir_ok = true;

if (!is_writeable(dir_fs_backup)) $messagestack->add(error_backup_directory_not_writeable, error);

} else {

$messagestack->add(error_backup_directory_does_not_exist, error);

}

?>

>

<?php echo title; ?>
<?php echo heading_title; ?><?php echo tep_draw_separator(pixel_trans.gif, heading_image_width, heading_image_height); ?>
<?php echo table_heading_title; ?><?php echo table_heading_file_date; ?><?php echo table_heading_file_size; ?><?php echo table_heading_action; ?> 

if ($dir_ok) {

$dir = dir(dir_fs_backup);

$contents = array();

while ($file = $dir->read()) {

if (!is_dir(dir_fs_backup . $file)) {

$contents[] = $file;

}

}

sort($contents);

for ($files=0; $files

$entry = $contents[$files];

$check = 0;

if (((!$http_get_vars[file]) || ($http_get_vars[file] == $entry)) && (!$buinfo) && ($http_get_vars[action] != backup) && ($http_get_vars[action] != restorelocal)) {

$file_array[file] = $entry;

$file_array[date] = date(php_date_time_format, filemtime(dir_fs_backup . $entry));

$file_array[size] = number_format(filesize(dir_fs_backup . $entry)) . bytes;

switch (substr($entry, -3)) {

case zip: $file_array[compression] = zip; break;

case .gz: $file_array[compression] = gzip; break;

default: $file_array[compression] = text_no_extension; break;

}

$buinfo = new objectinfo($file_array);

}

if (is_object($buinfo) && ($entry == $buinfo->file)) {

echo

$onclick_link = file= . $buinfo->file . &action=restore;

} else {

echo

$onclick_link = file= . $entry;

}

?>

<?php echo . tep_image(dir_ws_icons . file_download.gif, icon_file_download) .   . $entry; ?><?php echo date(php_date_time_format, filemtime(dir_fs_backup . $entry)); ?><?php echo number_format(filesize(dir_fs_backup . $entry)); ?> bytes<?php if ( (is_object($buinfo)) && ($entry == $buinfo->file) ) { echo tep_image(dir_ws_images . icon_arrow_right.gif, ); } else { echo . tep_image(dir_ws_images . icon_info.gif, image_icon_info) . ; } ?> 

}

$dir->close();

}

?>

<?php echo text_backup_directory . . dir_fs_backup; ?><?php if ( ($http_get_vars[action] != backup) && ($dir) ) echo . tep_image_button(button_backup.gif, image_backup) . ; if ( ($http_get_vars[action] != restorelocal) && ($dir) ) echo    . tep_image_button(button_restore.gif, image_restore) . ; ?>

if (defined(db_last_restore)) {

?>

<?php echo text_last_restoration . . db_last_restore . . text_forget . ; ?>

}

?>

$heading = array();

$contents = array();

switch ($http_get_vars[action]) {

case backup:

$heading[] = array(text => . text_info_heading_new_backup . );

$contents = array(form => tep_draw_form(backup, filename_backup, action=backupnow));

$contents[] = array(text => text_info_new_backup);

if ($messagestack->size > 0) {

$contents[] = array(text =>
. tep_draw_radio_field(compress, no, true) . . text_info_use_no_compression);

$contents[] = array(text =>
. tep_draw_radio_field(download, yes, true) . . text_info_download_only . *
* . text_info_best_through_https);

} else {

$contents[] = array(text =>
. tep_draw_radio_field(compress, gzip, true) . . text_info_use_gzip);

$contents[] = array(text => tep_draw_radio_field(compress, zip) . . text_info_use_zip);

$contents[] = array(text => tep_draw_radio_field(compress, no) . . text_info_use_no_compression);

$contents[] = array(text =>
. tep_draw_checkbox_field(download, yes) . . text_info_download_only . *
* . text_info_best_through_https);

}

$contents[] = array(align => center, text =>
. tep_image_submit(button_backup.gif, image_backup) .   . tep_image_button(button_cancel.gif, image_cancel) . );

break;

case restore:

$heading[] = array(text => . $buinfo->date . );

$contents[] = array(text => tep_break_string(sprintf(text_info_restore, dir_fs_backup . (($buinfo->compression != text_no_extension) ? substr($buinfo->file, 0, strrpos($buinfo->file, .)) : $buinfo->file), ($buinfo->compression != text_no_extension) ? text_info_unpack : ), 35, ));

$contents[] = array(align => center, text => . tep_image_button(button_restore.gif, image_restore) .   . tep_image_button(button_cancel.gif, image_cancel) . );

break;

case restorelocal:

$heading[] = array(text => . text_info_heading_restore_local . );

$contents = array(form => tep_draw_form(restore, filename_backup, action=restorelocalnow, post, enctype="multipart/form-data"));

$contents[] = array(text => text_info_restore_local .
. text_info_best_through_https);

$contents[] = array(text =>
. tep_draw_file_field(sql_file));

$contents[] = array(text => text_info_restore_local_raw_file);

$contents[] = array(align => center, text =>
. tep_image_submit(button_restore.gif, image_restore) .   . tep_image_button(button_cancel.gif, image_cancel) . );

break;

case delete:

$heading[] = array(text => . $buinfo->date . );

$contents = array(form => tep_draw_form(delete, filename_backup, file= . $buinfo->file . &action=deleteconfirm));

$contents[] = array(text => text_delete_intro);

$contents[] = array(text => . $buinfo->file . );

$contents[] = array(align => center, text =>
. tep_image_submit(button_delete.gif, image_delete) . . tep_image_button(button_cancel.gif, image_cancel) . );

break;

default:

if (is_object($buinfo)) {

$heading[] = array(text => . $buinfo->date . );

$contents[] = array(align => center, text => . tep_image_button(button_restore.gif, image_restore) . . tep_image_button(button_delete.gif, image_delete) . );

$contents[] = array(text =>
. text_info_date . . $buinfo->date);

$contents[] = array(text => text_info_size . . $buinfo->size);

$contents[] = array(text =>
. text_info_compression . . $buinfo->compression);

}

break;

}

if ( (tep_not_null($heading)) && (tep_not_null($contents)) ) {

echo

. "\n";

$box = new box;

echo $box->infobox($heading, $contents);

echo

. "\n";

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值