100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > PHP导出sql文件

PHP导出sql文件

时间:2021-06-03 19:20:51

相关推荐

PHP导出sql文件

php教程|php手册

PHP,导出,sql,文件,发现,自己,之前,写php,

php教程-php手册

自动点击某窗口的按钮 (vb源码),vscode插件安装出错,ubuntu 技嘉主板,tomcat 网页访问慢,爬虫的技巧,php cli已停止工作,洪梅seo优化推广哪家好,织梦网站内部div如何查找,html错误提示页面模板lzw

发现自己之前写的php导出sql数据为Excel文件在导出一些数据的时候出现了精度的问题,比如导出身份证号的时候会把后面变成0000。暂时先把这个问题留下,有空去看看到底是什么问题。 写了一个导出sql的工具。稍微加了下界面,把功能也做多了点,简单来说,就是

企业官网源码php下载地址,t100 ubuntu,爬虫工作能做多久,php历法,seo岗前培训lzw

白酒源码,vscode手动配置快捷键,ubuntu释放inode,tomcat自动定时重启,pycharm爬虫环境,php sleep原理,天河seo优化排名多少钱,flashfxp 发布网站lzw

发现自己之前写的php导出sql数据为Excel文件在导出一些数据的时候出现了精度的问题,比如导出身份证号的时候会把后面变成0000。暂时先把这个问题留下,有空去看看到底是什么问题。

写了一个导出sql的工具。稍微加了下界面,把功能也做多了点,简单来说,就是三个功能:

1.直接在浏览器上显示sql文件内容。

2.直接导出到服务器上,要求目录要可写。

3.直接下载到本地,脱库时感觉还不错。

好了直接贴上代码:

sqldump.php

<?php if (isset($_REQUEST[option])) { define(DOWNLOAD, $_REQUEST[option]); }else{ define(DOWNLOAD,0);//0代表直接显示,1代表下载,2代表导出在本地 } if (DOWNLOAD != 1) { header("Content-type:text/html;charset=utf-8"); } $cfg_dbhost =localhost; $cfg_dbname =mysql; $cfg_dbuser = oot; $cfg_dbpwd =\; $cfg_db_language =utf8; //配置信息 $cfg_dbhost = isset($_REQUEST[dbhost])?$_REQUEST[dbhost]:$cfg_dbhost; $cfg_dbname = isset($_REQUEST[dbname])?$_REQUEST[dbname]:$cfg_dbname; $cfg_dbuser = isset($_REQUEST[dbuser])?$_REQUEST[dbuser]:$cfg_dbuser; $cfg_dbpwd = isset($_REQUEST[dbpwd])?$_REQUEST[dbpwd]:$cfg_dbpwd; $cfg_db_language = isset($_REQUEST[dbc])?$_REQUEST[dbc]:$cfg_db_language; $to_file_name =isset($_REQUEST[dbtable])?$_REQUEST[dbtable].".sql":$cfg_dbname.".sql"; if (DOWNLOAD==2) { $to_file_name =isset($_REQUEST[dbtable])?dirname(__FILE__).DIRECTORY_SEPARATOR.$_REQUEST[dbtable].".sql":dirname(__FILE__).DIRECTORY_SEPARATOR.$cfg_dbname.".sql"; } // END 配置 //链接数据库 $link = @mysql_connect($cfg_dbhost,$cfg_dbuser,$cfg_dbpwd); $link==null?die(mysql connect error):\; @mysql_select_db($cfg_dbname); //选择编码 @mysql_query("set names ".$cfg_db_language); //数据库中有哪些表 $tabList = isset($_REQUEST[dbtable])?array("{$_REQUEST[dbtable]}"):list_tables($cfg_dbname); $tabList==null?die( o tables found):\; if (DOWNLOAD==1) { Header("Content-type: application/octet-stream"); Header("Accept-Ranges: bytes"); Header("Content-Disposition: attachment; filename=".$to_file_name); } if (DOWNLOAD==2) { echo "正在导出..."; } $info = "-- ----------------------------\r\n"; $info .= "-- 备份日期:".date("Y-m-d H:i:s",time())."\r\n"; $info .= "-- ----------------------------\r\n\r\n"; if (DOWNLOAD==2) { file_put_contents($to_file_name,$info,FILE_APPEND); }else{ echo $info; } //将每个表的表结构导出到文件 foreach($tabList as $val){ $sql = "show create table ".$val; $res = @mysql_query($sql,$link); if ($res==null) { die( able `.$val.` not EXISTS); } $row = @mysql_fetch_array($res); $info = "-- ----------------------------\r\n"; $info .= "-- Table structure for `".$val."`\r\n"; $info .= "-- ----------------------------\r\n"; $info .= "DROP TABLE IF EXISTS `".$val."`;\r\n"; $sqlStr = $info.$row[1].";\r\n\r\n"; if (DOWNLOAD==2) { //追加到文件 file_put_contents($to_file_name,$sqlStr,FILE_APPEND); }else{ echo $sqlStr; } //释放资源 @mysql_free_result($res); } //将每个表的数据导出到文件 foreach($tabList as $val){ if(DOWNLOAD==2){ echo "正在导出表`".$val."`...

"; } $sql = "select * from ".$val; $res = @mysql_query($sql,$link); //如果表中没有数据,则继续下一张表 if(@mysql_num_rows($res)<1) continue; // $info = "-- ----------------------------\r\n"; $info .= "-- Records for `".$val."`\r\n"; $info .= "-- ----------------------------\r\n"; if (DOWNLOAD==2) { file_put_contents($to_file_name,$info,FILE_APPEND); }else{ echo $info; } //读取数据 while($row = @mysql_fetch_row($res)){ $sqlStr = "INSERT INTO `".$val."` VALUES ("; foreach($row as $zd){$sqlStr .= "\".$zd.", "; } //去掉最后一个逗号和空格 $sqlStr = substr($sqlStr,0,strlen($sqlStr)-2); $sqlStr .= ");\r\n"; if (DOWNLOAD==2) {file_put_contents($to_file_name,$sqlStr,FILE_APPEND); }else{echo $sqlStr; } } //释放资源 @mysql_free_result($res); if (DOWNLOAD==2) { file_put_contents($to_file_name,"\r\n",FILE_APPEND); }else{ echo "\r\n"; } } if(DOWNLOAD==2){ echo "导出成功。"; }// echo "End!"; function list_tables($database) { $sql=SHOW TABLES FROM .$database; $rs = mysql_query($sql); $tables = array(); while ($row = mysql_fetch_row($rs)) { $tables[] = $row[0]; } mysql_free_result($rs); return $tables; }?>

然后是界面的东西了,为的是不让自己去记这个烦人的参数。

sqldumpclient.html

sqldump客户端function setaction () { $(cform).action=$(act).value; inputs=document.getElementsByTagName(input); for(var i =1;i<inputs.length-4;i++){ if (inputs[i].value!=\) {inputs[i].name=inputs[i].id; } } } function $(id){ return document.getElementById(id); }

PHP sql dump

Author:Medici.Yan@

用法也很简单,把sqldump.php传到服务器上,然后在本地运行sqldumpclient.html,写上相关参数就OK。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。