欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

在php中,怎样冲数据库导出表到json/word/xml/excel_PHP教程

程序员文章站 2022-04-11 15:25:46
...
数据库信息导出:word,excel,json,xml,sql
数据库恢复:从sql,从文件
具体用法:
首先新建测试用数据库mytest,然后在里面建张表
PHP代码:
以下是代码片段:
--
-- 表的结构 `test`
--
CREATE TABLE `test` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(100) NOT NULL,
`email` varchar(200) NOT NULL,
`age` int(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
--
-- 导出表中的数据 `test`
--
INSERT INTO `test` (`id`, `name`, `email`, `age`) VALUES
(1, 'pjq518', [email=]'pjq518@126.com'[/email], 22),
(2, 'xiaoyu', [email=]'xiaoyu@126.com'[/email], 21);
1.导出ext能方便调用的json
PHP代码:
以下是代码片段:
 $db=new db();
echo  $db->toExtJson('test');
//输出结果为
//{'totalCount':'2','rows':[{'id':'1','name':'pjq518','email':'pjq518@126.com','age':'22'},{'id':'2','name':'xiaoyu','email':'xiaoyu@126.com','age':'21'}]}
toExtJson( $table, $start="0", $limit="10", $cons="")有4个参数, $table为表名, $cons为条件,可以为string或array
2、导出xml
PHP代码:
以下是代码片段:
 $db=new db();
echo  $db->toExtXml('test');
//输出结果
3、导出excel和word
PHP代码:
以下是代码片段:
 $db=new db();
//toExcel
 $map=array('No','Name','Email','Age');//表头
 $db->toExcel('test', $map,'档案');
//导出word表格
// $db->toWord('test', $map,'档案');
//效果如下图
PHP代码:
class Db {
var $conn;
/***************************************************************************
* 连接数据库
* return:MySQL 连接标识,失败返回FALSE
**************************************************************************/
function Db($host="localhost",$user="root",$pass="123456",$db="juren_gaokao") {
if(!$this->conn=mysql_connect($host,$user,$pass))
die("can't connect to mysql sever");
mysql_select_db($db,$this->conn);
mysql_query("SET NAMES 'UTF-8'");
}
/***************************************************************************
* 执行SQL查询
* return:查询结构集 resource
**************************************************************************/
function execute($sql) {
return mysql_query($sql,$this->conn);
}
/***************************************************************************
* 返回结构集中行数
* return:number 数字
**************************************************************************/
function findCount($sql) {
$result=$this->execute($sql);
return mysql_num_rows($result);
}
/***************************************************************************
* 执行SQL查询
* return:array 数组
**************************************************************************/
function findBySql($sql) {
$array=array();
$result=mysql_query($sql);
$i=0;
while($row=mysql_fetch_assoc($result)) {
$array[$i]=$row;
$i++;
}
return $array;
}
/***************************************************************************
*$con的几种情况
*空:返回全部记录
*array:eg. array('id'=>'1') 返回id=1的记录
*string :eg. 'id=1' 返回id=1的记录
* return:json 格式数据
***************************************************************************/
function toExtJson($table,$start="0",$limit="10",$cons="") {
$sql=$this->generateSql($table,$cons);
$totalNum=$this->findCount($sql);
$result=$this->findBySql($sql." LIMIT ".$start." ,".$limit);
$resultNum = count($result);//当前结果数
$str="";
$str.= "{";
$str.= "'totalCount':' $totalNum',";
$str.="'rows':";
$str.="[";
for($i=0;$i
$str.="{";
$count=count($result[$i]);
$j=1;
foreach($result[$i] as $key=>$val) {
if($j
$str.="'".$key."':'".$val."',";
}
elseif($j==$count) {
$str.="'".$key."':'".$val."'";
}
$j++;
}
$str.="}";
if ($i != $resultNum-1) {
$str.= ", ";
}
}
$str.="]";
$str.="}";
return $str;
}
/***************************************************************************
* $table:表名
* $cons:sql条件
* return:SQL语句
**************************************************************************/
function generateSql($table,$cons) {
$sql="";//sql条件
$sql="select * from ".$table;
if($cons!="") {
if(is_array($cons)) {
$k=0;
foreach($cons as $key=>$val) {
if($k==0) {
$sql.="where '";
$sql.=$key;
$sql.="'='";
$sql.=$val."'";
}else {
$sql.="and '";
$sql.=$key;
$sql.="'='";
$sql.=$val."'";
}
$k++;
}
}else {
$sql.=" where ".$cons;
}
}
return $sql;
}
/***************************************************************************
* $table:表名
* $cons:条件
* return:XML格式文件
**************************************************************************/
function toExtXml($table,$start="0",$limit="10",$cons="") {
$sql=$this->generateSql($table,$cons);
$totalNum=$this->findCount($sql);
$result=$this->findBySql($sql." LIMIT ".$start." ,".$limit);
$resultNum = count($result);//当前结果数
header("Content-Type: text/xml");
$xml='';
$xml.="";
$xml.="".$totalNum."";
$xml.="";
for($i=0;$i
$xml.="";
foreach($result[$i] as $key=>$val)
$xml.="".$val."".$key.">";
$xml.="";
}
$xml.="";
$xml.="";
return $xml;
}
/***************************************************************************
* $table:表名
* $mapping:数组格式头信息$map=array('No','Name','Email','Age');
* $fileName:WORD文件名称
* return:WORD格式文件
**************************************************************************/
function toWord($table,$mapping,$fileName) {
header('Content-type: application/doc');
header('Content-Disposition: attachment; filename="'.$fileName.'.doc"');
echo '
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="[url=http://www.w3.org/TR/REC-html40]http://www.w3.org/TR/REC-html40[/url]">
'.$fileName.'
';
echo'';
if(is_array($mapping)) {
foreach($mapping as $key=>$val)
echo'
';
}
echo'
';
$results=$this->findBySql('select * from '.$table);
foreach($results as $result) {
echo'
';
foreach($result as $key=>$val)
echo'
';
echo'
';
}
echo'
'.$val.'
'.$val.'
';
echo'';
echo'';
}
/***************************************************************************
* $table:表名
* $mapping:数组格式头信息$map=array('No','Name','Email','Age');
* $fileName:Excel文件名称
* return:Excel格式文件
**************************************************************************/
function toExcel($table,$mapping,$fileName) {
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=".$fileName.".xls");
echo'
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="[url=http://www.w3.org/TR/REC-html40]http://www.w3.org/TR/REC-html40[/url]">
';
echo'';
echo'
';
if(is_array($mapping)) {
foreach($mapping as $key=>$val)
echo'
';
}
echo'
';
$results=$this->findBySql('select * from '.$table);
foreach($results as $result) {
echo'
';
foreach($result as $key=>$val)
echo'
';
echo'
';
}
echo'
'.$val.'
'.$val.'
';
echo'';
echo'';
}
function Backup($table) {
if(is_array ($table)) {
$str="";
foreach($table as $tab)
$str.=$this->get_table_content($tab);
return $str;
}else {
return $this->get_table_content($table);
}
}
/***************************************************************************
* 备份数据库数据到文件
* $table:表名
* $file:文件名
**************************************************************************/
function Backuptofile($table,$file) {
header("Content-disposition: filename= $file.sql");//所保存的文件名
header("Content-type: application/octetstream");
header("Pragma: no-cache");
header("Expires: 0");
if(is_array ($table)) {
$str="";
foreach($table as $tab)
$str.=$this->get_table_content($tab);
echo $str;
}else {
echo $this->get_table_content($table);
}
}
function Restore($table,$file="",$content="") {
//排除file,content都为空或者都不为空的情况
if(($file==""&&$content=="")||($file!=""&&$content!=""))
echo"参数错误";
$this->truncate($table);
if($file!="") {
if($this->RestoreFromFile($file))
return true;
else
return false;
}
if($content!="") {
if($this->RestoreFromContent($content))
return true;
else
return false;
}
}
//清空表,以便恢复数据
function truncate($table) {
if(is_array ($table)) {
$str="";
foreach($table as $tab)
$this->execute("TRUNCATE TABLE  $tab");
}else {
$this->execute("TRUNCATE TABLE  $table");
}
}
function get_table_content($table) {
$results=$this->findBySql("select * from $table");
$temp = "";
$crlf="rn";
foreach($results as $result) {
/*(";
foreach( $result as  $key=> $val)
{
$schema_insert .= " `". $key."`,";
}
$schema_insert = ereg_replace(", $", "",  $schema_insert);
$schema_insert .= ")
*/
$schema_insert = "INSERT INTO  $table VALUES (";
foreach($result as $key=>$val) {
if($val != "")
$schema_insert .= " '".addslashes($val)."',";
else
$schema_insert .= "NULL,";
}
$schema_insert = ereg_replace(", $", "", $schema_insert);
$schema_insert .= "); $crlf";
$temp = $temp.$schema_insert ;
}
return $temp;
}
function RestoreFromFile($file) {
if (false !== ($fp = fopen($file, 'r'))) {
$sql_queries = trim(fread($fp, filesize($file)));
$this->splitMySqlFile($pieces, $sql_queries);
foreach ($pieces as $query) {
if(!$this->execute(trim($query)))
return false;
}
return true;
}
return false;
}
function RestoreFromContent($content) {
$content = trim($content);
$this->splitMySqlFile($pieces, $content);
foreach ($pieces as $query) {
if(!$this->execute(trim($query)))
return false;
}
return true;
}
function splitMySqlFile(&$ret, $sql) {
$sql= trim($sql);
$sql=split('',$sql);
$arr=array();
foreach($sql as $sq) {
if($sq!="");
$arr[]=$sq;
}
$ret=$arr;
return true;
}

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477787.htmlTechArticle数据库信息导出:word,excel,json,xml,sql 数据库恢复:从sql,从文件 具体用法: 首先新建测试用数据库mytest,然后在里面建张表 PHP代码:...
在php中,怎样冲数据库导出表到json/word/xml/excel_PHP教程

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • 在php中,怎样冲数据库导出表到json/word/xml/excel_PHP教程
  • 专题推荐

    作者信息
    在php中,怎样冲数据库导出表到json/word/xml/excel_PHP教程

    认证0级讲师

    推荐视频教程
  • 在php中,怎样冲数据库导出表到json/word/xml/excel_PHP教程javascript初级视频教程
  • 在php中,怎样冲数据库导出表到json/word/xml/excel_PHP教程jquery 基础视频教程
  • 视频教程分类