php数据库备份还原函数

 更新时间:2016年11月25日 16:38  点击:1838
文章提供一款备份还原函数这是利用php写的可以备份也可以还原的函数,同时也支持备份后保存到本地的代码哦,好了下面看源码。

//备份还原函数

 代码如下 复制代码

function write_file($sql,$filename) {
    $re=true;
    if(!@$fp=fopen("./www.111cn.net/".$filename,"w+")) {$re=false; echo "failed to open target file";}
    if(!@fwrite($fp,$sql)) {$re=false; echo "failed to write file";}
    if(!@fclose($fp)) {$re=false; echo "failed to close target file";}
    return $re;
}
function down_file($sql,$filename){
 ob_end_clean();
 header("content-encoding: none");
 header("content-type: ".(strpos($_server['http_user_agent'], 'msie') ? 'application/octetstream' : 'application/octet-stream'));

 header("content-disposition: ".(strpos($_server['http_user_agent'], 'msie') ? 'inline; ' : 'attachment; ')."filename=".$filename);

 header("content-length: ".strlen($sql));
 header("pragma: no-cache");

 header("expires: 0");
 echo $sql;
 $e=ob_get_contents();
 ob_end_clean();
}

function writeable($dir){
 if(!is_dir($dir)) {
     @mkdir($dir, 0777);
 }
 if(is_dir($dir)){
        if($fp = @fopen("$dir/test.test", 'w')){
            @fclose($fp);
            @unlink("$dir/test.test");
            $writeable = 1;
        }else {
            $writeable = 0;
     }
    }
 return $writeable;
}

function make_header($table){
    global $db;
    $sql="drop table if exists `".$table."`; ";
    $db->query("show create table ".$table);
    $db->nextrecord();
    $tmp=preg_replace("/ /","",$db->f("create table"));
    $sql.=$tmp."; ";
    return $sql;
}

function make_record($table,$num_fields){
    global $db;
    $comma="";
    $sql .= "insert into ".$table." values(";
    for($i = 0; $i < $num_fields; $i++)
    {$sql .= ($comma."'".mysql教程_escape_string($db->record[$i])."'"); $comma = ",";}
    $sql .= "); ";
    return $sql;
}

function show_msg($msgs){
    $i=0;
    $tm1="<table width='100%' border='0'  cellpadding='0' cellspacing='1'><tr><td><font color='red'><b>提示信息:</b></font></td></tr><tr><td><ul>";
    while (list($k,$v)=each($msgs)){
        $i=$i+1;
        $t1="<li>$i.".$v."</li>";
        $t=$t.$t1;
    }
    $tm2="</ul></td></tr></table>";
    return $tm1.$t.$tm2;
}

function pageend(){
    exit();
}

function import($fname) {
    global $db;
    $sqls=file($fname);
        foreach($sqls as $sql){
        str_replace(" ","",$sql);
        str_replace(" ","",$sql);
        if(!$db->query(trim($sql))) return false;
 }
    return true;
}
?>

打开PHP配置文件php.ini,找到;extension=php_mssql.dll把前面的分号去掉。 2、找到mssql.secure_connection = Off修改成 mssql.secure_connection = On。 3、把PHP文件夹下的php_mssql.dll和ntwdblib.DLL这两个文件拷贝到C:windowssystem32文件夹下

 ----在这里,复制ntwdblib.dll到c:windowssystem32下是失败,原因是该目录下已经存在该dll文件啦.

我重启apache,

*/
$hostname="10.4.250.20"; 
$dbuser="hr"; 
$dbpasswd="946138"; 
$dbname="hr"; 
$conn = mssql_connect($hostname,$dbuser,$dbpasswd) or die("数据库连接错误!"); 
mssql_select_db($dbname,$conn); 
$sql = " select * from pip_staff_s where cstaffid ='z797' "; 
$rowset=mssql_query($sql,$conn); 
$rowcnt=mssql_num_row($rowset);
echo " rows ";
echo $rowset;
echo " end ";

本款是利用php mysql 数据库操作类函数,他可以删除,修改,增加,备份等对数据库的操作哦,同时还支持两种数据库连接方式 哦,以前数据库编码等的设置。
 代码如下 复制代码

class dbstuff {
 var $querynum = 0;
 var $link;
    var $sqlid;
    var $record;
    var $dbcharset='utf-8';
    var $charset='utf-8';
 function connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $halt = true) {
  if($pconnect) {
   if(!$this->link = @mysql_pconnect($dbhost, $dbuser, $dbpw)) {
    $halt && $this->halt('can not connect to mysql server');
   }
  } else {
   if(!$this->link = @mysql_connect($dbhost, $dbuser, $dbpw, 1)) {
    $halt && $this->halt('can not connect to mysql server');
   }
  }

  if($this->version() > '4.1') {
   global $charset, $dbcharset;
   if(!$dbcharset && in_array(strtolower($charset), array('gbk', 'big5', 'utf-8'))) {
    $dbcharset = str_replace('-', '', $charset);
   }

   if($dbcharset) {
    @mysql_query("set character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary", $this->link);
   }

   if($this->version() > '5.0.1') {
    @mysql_query("set sql_mode=''", $this->link);
   }
  }

  if($dbname) {
   @mysql_select_db($dbname, $this->link);
  }

 }

 function select_db($dbname) {
  return mysql_select_db($dbname, $this->link);
 }

 function fetch_array($query, $result_type = mysql_assoc) {
  return mysql_fetch_array($query, $result_type);
 }

 function query($sql, $type = '') {
  global $debug, $discuz_starttime, $sqldebug, $sqlspenttimes;

  $func = $type == 'unbuffered' && @function_exists('mysql_unbuffered_query') ?
   'mysql_unbuffered_query' : 'mysql_query';
  if(!($query = $func($sql, $this->link))) {
   if(in_array($this->errno(), array(2006, 2013)) && substr($type, 0, 5) != 'retry') {
    $this->close();
    $this->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect);
    $this->query($sql, 'retry'.$type);
   } elseif($type != 'silent' && substr($type, 5) != 'silent') {
    $this->halt('mysql query error', $sql);
   }
  }

  $this->querynum++;
        $this->sqlid=$query;
  return $query;
 }

 function affected_rows() {
  return mysql_affected_rows($this->link);
 }

 function error() {
  return (($this->link) ? mysql_error($this->link) : mysql_error());
 }

 function errno() {
  return intval(($this->link) ? mysql_errno($this->link) : mysql_errno());
 }

 function result($query, $row) {
  $query = @mysql_result($query, $row);
  return $query;
 }

    function result_first($sql) {
  return $this->result($this->query($sql), 0);
 }

 function num_rows($query) {
  $query = mysql_num_rows($query);
  return $query;
 }

 function num_fields($query) {
  return mysql_num_fields($query);
 }

 function free_result($query) {
  return mysql_free_result($query);
 }

 function insert_id() {
  return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("select last_insert_id()"), 0);
 }

 function fetch_row($query) {
  $query = mysql_fetch_row($query);
  return $query;
 }

 function fetch_fields($query) {
  return mysql_fetch_field($query);
 }

 function version() {
  return mysql_get_server_info($this->link);
 }

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

    function nr($sql_id="") {
        if(!$sql_id) $sql_id=$this->sqlid;
     return mysql_num_rows($sql_id);
    }

    function nf($sql_id="") {
        if(!$sql_id) $sql_id=$this->sqlid;
        return mysql_num_fields($sql_id);
    }

    function nextrecord($sql_id="") {
        if(!$sql_id) $sql_id=$this->sqlid;
        if($this->record=mysql_fetch_array($sql_id))  return $this->record;
        else return false;
    }

    function f($name) {
        if($this->record[$name]) return $this->record[$name];
        else return false;
    }

    function lock($tblname,$op="write") {
        if(mysql_query("lock tables ".$tblname." ".$op)) return true;
        else return false;
    }

    function unlock()
        {if(mysql_query("unlock tables")) return true; else return false;}

    function ar() {
        return @mysql_affected_rows($this->link);
    }

    function i_id() {
            return mysql_insert_id();
    }

 function halt($message = '', $sql = '') {
  define('cache_forbidden', true);
  include('db_mysql_error.inc.php');
 }
}

?>

sqlite 数据库连接类就是利用了php 与sqlite进行连接操作。
 代码如下 复制代码

 */
class db_class {
 var $conn=null;
 var $querynum = 0;

 /**
  * 数据库连接,返回数据库连接标识符
  *
  * @param string $ 数据库服务器主机
  * @param string $ 数据库服务器帐号
  * @param string $ 数据库服务器密码
  * @param string $ 数据库名
  * @param bool $ 是否保持持续连接,1为持续连接,0为非持续连接
  * @return link_identifier $dbuser, $dbpw, $dbname,
  */
 function connect($dbhost, $pconnect = 0) {
  $error = '';
  $func = $pconnect == 1 ? 'sqlite_popen' : 'sqlite_open';
  if (!$this -> conn = $func($dbhost, 0666, $error)) {
   $this -> halt($error);
  }

  return $this -> conn;
 }

 /**
  * 执行sql语句
  *
  * @param string $ sql语句
  * @param string $ 默认为空,可选值为 cache unbuffered
  * @param int $ cache以秒为单位的生命周期
  * @return resource
  */
 function query($sql , $type = '' , $expires = 3600, $dbname = '') {
  $error = '';
  $func = $type == 'unbuffered' ? 'sqlite_unbuffered_query' : 'sqlite_query';
  if (preg_match("/^s*select/i", $sql)) {
   $query = $func($this -> conn, $sql, sqlite_assoc, $error);
  } else {
   $query = sqlite_exec($this -> conn, $sql, $error);
  }
  if ($error) {
   $this -> halt($error, $sql);
  }

  $this -> querynum++;
  return $query;
 }
 /*
 *@param string $ table名
 *@param string $ where条件
 *@param string $ colum名
 
 *@param string $ limit数量 
 
 */
 function getlist($table , $wheres = "1=1",  $colums = '*' ,$limits = '3000',$orderbys="id desc") {
  $query = $this -> query("select ".$colums." from ".$table." where ".$wheres." order by  ".$orderbys."  limit ".$limits, $type, $expires, $dbname);
  while($rs = $this -> fetch_array($query)){
   $datas[]=$rs;
   }
  //print_r("select ".$colums." from ".$table." where ".$wheres." limit ".$limits);
  //print_r($rs);die();
  $this -> free_result($query);
  return $datas ;
 }
 function add_one($table , $colums ,$data ) {
  //die("insert into ".$table." (".$colums.") values(".$data.")");
  $query = $this -> query("insert into ".$table." (".$colums.") values(".$data.")", $type, $expires, $dbname);
  //return $this->insert_id();
  return $query;
 }
 function delist($table , $idarray,$wheres="no") {
  if($wheres=='no')
   $query = $this -> query("delete from ".$table." where id in(".$idarray.")", $type, $expires, $dbname);
  else
   $query = $this -> query("delete from ".$table." where ".$wheres, $type, $expires, $dbname);
  return $query;
 }
 function updatelist($table , $updatedata,$idarray) {
  $query = $this -> query("update ".$table." set ". $updatedata."  where id in(".$idarray.")", $type, $expires, $dbname);
  return $query;
 }
 //update max_vote set maxtitle='$title',maxban='$ban',
 /**
  * 执行sql语句,只得到一条记录
  *
  * @param string $ sql语句
  * @param string $ 默认为空,可选值为 cache unbuffered
  * @param int $ cache以秒为单位的生命周期
  * @return array
  */
 function get_one($sql, $type = '', $expires = 3600, $dbname = '') {
  $query = $this -> query($sql, $type, $expires, $dbname);
  $rs = $this -> fetch_array($query);
  $this -> free_result($query);
  return $rs ;
 }

 /**
  * 从结果集中取得一行作为关联数组
  *
  * @param resource $ 数据库查询结果资源
  * @param string $ 定义返回类型
  * @return array
  */
 function fetch_array($query, $result_type = sqlite_assoc) {
  return sqlite_fetch_array($query, $result_type);
 }

 /**
  * 取得前一次 sqlite操作所影响的记录行数
  *
  * @return int
  */
 function affected_rows() {
  return sqlite_changes($this -> conn);
 }

 /**
  * 取得结果集中行的数目
  *
  * @return int
  */
 function num_rows($query) {
  return sqlite_num_rows($query);
 }

 /**
  * 返回结果集中字段的数目
  *
  * @return int
  */
 function num_fields($query) {
  return sqlite_num_fields($query);
 }

 /**
  *
  * @return array 备用,一般不用.
  */
 function result($query, $row) {
  return @sqlite_fetch_all($query, sqlite_assoc);
 }
 /**
  * sqlite没有相应函数
  */
 function free_result($query) {
  return ;
 }

 /**
  * 取得上一步 insert 操作产生的 id
  *
  * @return int
  */
 function insert_id() {
  return sqlite_last_insert_rowid($this -> connid);
 }

 /**
  *
  * @return array 只得到数字索引
  */
 function fetch_row($query) {
  return sqlite_fetch_array($query, sqlite_num);
 }
 /**
  */
 function fetch_assoc($query) {
  return $this -> fetch_array($query, sqlite_assoc);
 }
 /**
  *
  * @return string
  */
 function version() {
  return sqlite_libversion();
 }

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

 /**
  *
  * @return string
  */
 function error() {
  return sqlite_error_string($this -> errno);
 }

 /**
  *
  * @return int
  */
 function errno() {
  return sqlite_last_error($this -> conn);
 }

 /**
  * 显示mysql教程错误信息
  */
 function halt($message = '', $sql = '') {
  exit("sqlitequery:$sql <br> sqliteerror:" . $this -> error() . " <br> sqliteerrno:" . $this -> errno() . " <br> message:$message");
 }
}

?>

 

require_once 'excel/reader.php';


// excelfile($filename, $encoding);
$data = new spreadsheet_excel_reader();


// set output encoding.
$data->setoutputencoding('cp1251');

$data->read('jxlrwtest.xls');

error_reporting(e_all ^ e_notice);

for ($i = 1; $i <= $data->sheets[0]['numrows']; $i++) {
 for ($j = 1; $j <= $data->sheets[0]['numcols']; $j++) {
  echo """.$data->sheets[0]['cells'][$i][$j]."",";
 }
 echo " ";

}

格式化输出格式

/***
*  some function for formatting output.
* $data->setdefaultformat('%.2f');
* setdefaultformat - set format for columns with unknown formatting
*
* $data->setcolumnformat(4, '%.3f');
* setcolumnformat - set format for column (apply only to number fields)
*
**/

统计总行数与按列名输出。
 $data->sheets[0]['numrows'] - count rows
 $data->sheets[0]['numcols'] - count columns
 $data->sheets[0]['cells'][$i][$j] - data from $i-row $j-column

 $data->sheets[0]['cellsinfo'][$i][$j] - extended info about cell
   
    $data->sheets[0]['cellsinfo'][$i][$j]['type'] = "date" | "number" | "unknown"
        if 'type' == "unknown" - use 'raw' value, because  cell contain value with format '0.00';
    $data->sheets[0]['cellsinfo'][$i][$j]['raw'] = value if cell without format
    $data->sheets[0]['cellsinfo'][$i][$j]['colspan']
    $data->sheets[0]['cellsinfo'][$i][$j]['rowspan']

[!--infotagslink--]

相关文章

  • PHP 数据库缓存Memcache操作类

    操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Intellij IDEA连接Navicat数据库的方法

    这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
  • 在数据库里将毫秒转换成date格式的方法

    在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 如何解决局域网内mysql数据库连接慢

    通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
  • MySQL快速复制数据库数据表的方法

    某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
  • mysqldump命令导入导出数据库方法与实例汇总

    mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
  • Mysql数据库错误代码中文详细说明

    1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
  • c#异步读取数据库与异步更新ui的代码实现

    这篇文章主要介绍了c#从数据库里取得数据并异步更新ui的方法,大家参考使用吧...2020-06-25
  • Yii2.0高级框架数据库增删改查的一些操作

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作。 User::find()->all(); //返回所有用户数据; User::findOne($id); //返回 主键...2015-11-24
  • springBoot 项目排除数据库启动方式

    这篇文章主要介绍了springBoot 项目排除数据库启动方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-10
  • MYSQL数据库使用UTF-8中文编码乱码的解决办法

    1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: 复制代码 代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创...2015-10-21
  • Linux 下使用shell脚本定时维护数据库的案例

    这篇文章主要介绍了Linux 下使用shell脚本定时维护数据库,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • PHP连接公司内部服务器的MYSQL数据库的简单实例

    “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
  • C#连接加密的Sqlite数据库的方法

    对数据加密分两种,一种是对数据库本身进行加密,另一种是对数据表中的数据进行加密,下面通过本文给大家介绍C#连接加密的Sqlite数据库的方法,感兴趣的朋友一起看看吧...2020-06-25
  • Java连接数据库oracle中文乱码解决方案

    这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16
  • 深入分析C#连接Oracle数据库的连接字符串详解

    本篇文章是对C#连接Oracle数据库的连接字符串进行了详细的分析介绍,需要的朋友参考下...2020-06-25
  • 修改MySQL数据库中表和表中字段的编码方式的方法

    今天向MySQL数据库中的一张表添加含有中文的数据,可是老是出异常,检查程序并没有发现错误,无奈呀,后来重新检查这张表发现表的编码方式为latin1并且原想可以插入中文的字段的编码方式也是latin1,然后再次仔细观察控制台输...2014-05-31