求用PHP把SQL文件导入MYSQL中的源代码
时间:2009-11-05
来源:互联网
求用PHP把SQL文件导入MYSQL中的源代码,在网上看了好多!可是我下载下来后就是不能用
<?php
@header("content-Type: text/html; charset=utf-8");
error_reporting(0);
function runquery($sql) {
global $dbcharset, $db_prefix, $DB, $tablenum;
$sql = str_replace("\r", "\n", $sql);
$ret = array();
$num = 0;
foreach(explode(";\n", trim($sql)) as $query) {
$queries = explode("\n", trim($query));
foreach($queries as $query) {
$ret[$num] .= $query[0] == '#' ? '' : $query;
}
$num++;
}
unset($sql);
foreach($ret as $query) {
$query = trim($query);
if ($query) {
if (substr($query, 0, 12) == 'CREATE TABLE') {
$name = preg_replace("/CREATE TABLE ([a-z0-9_]+) .*/is", "\\1", $query);
echo '创建表 ' . $name . ' ... <font color="#0000EE">成功</font><br />';
mysql_query(createtable($query, $dbcharset));
$tablenum++;
} else {
mysql_query($query);
}
}
}
}
function createtable($sql, $dbcharset) {
$type = strtoupper(preg_replace("/^\s*CREATE TABLE\s+.+\s+\(.+?\).*(ENGINE|TYPE)\s*=\s*([a-z]+?).*$/isU", "\\2", $sql));
$type = in_array($type, array('MYISAM', 'HEAP')) ? $type : 'MYISAM';
return preg_replace("/^\s*(CREATE TABLE\s+.+\s+\(.+?\)).*$/isU", "\\1", $sql) .
(mysql_get_server_info() > '4.1' ? " ENGINE=$type DEFAULT CHARSET=$dbcharset" : " TYPE=$type");
}
//设置样式
$css = <<< DOC
<style type="text/css" media="screen">
body {
background-color:#fff;
line-height:1.6;
font-size:12px;
font-family:宋体, Arial;
color:#666;
word-break:break-all;
}
</style>
DOC;
echo $css;
$servername = "localhost"; //数据库服务器地址
$dbusername = "root"; //帐号
$dbpassword = "1111"; //密码
$dbname = "D";
//$dbname = $_GET['dbname']; //数据库名称,部分从url获得
$dbcharset = 'utf8';
$sqlfile = 'R.sql'; //本机导出的Sql文件
if (!is_readable($sqlfile)) {exit('数据库文件不存在或者读取失败');}
$fp = fopen($sqlfile, 'rb');
$sql = fread($fp, 2048000);
fclose($fp);
$conn = mysql_connect($servername, $dbusername, $dbpassword); //指定数据库连接参数
if (!$conn) {die('不能连接数据库服务器: ' . mysql_error());}
$sqlstr = "create database " . $dbname;
//mysql_query($sqlstr) or die("无法创建数据库.");
mysql_select_db($dbname) or mysql_query($sqlstr) or die("无法创建数据库.");//如果有数据库进入,无就新建,建不了提示
runquery($sql) or die("无法导入数据文件."); //导入数据文件
mysql_close($conn);
?>
都是到runquery($sql) or die("无法导入数据文件."); //导入数据文件
这句错误!提示无法导入数据文件
<?php
@header("content-Type: text/html; charset=utf-8");
error_reporting(0);
function runquery($sql) {
global $dbcharset, $db_prefix, $DB, $tablenum;
$sql = str_replace("\r", "\n", $sql);
$ret = array();
$num = 0;
foreach(explode(";\n", trim($sql)) as $query) {
$queries = explode("\n", trim($query));
foreach($queries as $query) {
$ret[$num] .= $query[0] == '#' ? '' : $query;
}
$num++;
}
unset($sql);
foreach($ret as $query) {
$query = trim($query);
if ($query) {
if (substr($query, 0, 12) == 'CREATE TABLE') {
$name = preg_replace("/CREATE TABLE ([a-z0-9_]+) .*/is", "\\1", $query);
echo '创建表 ' . $name . ' ... <font color="#0000EE">成功</font><br />';
mysql_query(createtable($query, $dbcharset));
$tablenum++;
} else {
mysql_query($query);
}
}
}
}
function createtable($sql, $dbcharset) {
$type = strtoupper(preg_replace("/^\s*CREATE TABLE\s+.+\s+\(.+?\).*(ENGINE|TYPE)\s*=\s*([a-z]+?).*$/isU", "\\2", $sql));
$type = in_array($type, array('MYISAM', 'HEAP')) ? $type : 'MYISAM';
return preg_replace("/^\s*(CREATE TABLE\s+.+\s+\(.+?\)).*$/isU", "\\1", $sql) .
(mysql_get_server_info() > '4.1' ? " ENGINE=$type DEFAULT CHARSET=$dbcharset" : " TYPE=$type");
}
//设置样式
$css = <<< DOC
<style type="text/css" media="screen">
body {
background-color:#fff;
line-height:1.6;
font-size:12px;
font-family:宋体, Arial;
color:#666;
word-break:break-all;
}
</style>
DOC;
echo $css;
$servername = "localhost"; //数据库服务器地址
$dbusername = "root"; //帐号
$dbpassword = "1111"; //密码
$dbname = "D";
//$dbname = $_GET['dbname']; //数据库名称,部分从url获得
$dbcharset = 'utf8';
$sqlfile = 'R.sql'; //本机导出的Sql文件
if (!is_readable($sqlfile)) {exit('数据库文件不存在或者读取失败');}
$fp = fopen($sqlfile, 'rb');
$sql = fread($fp, 2048000);
fclose($fp);
$conn = mysql_connect($servername, $dbusername, $dbpassword); //指定数据库连接参数
if (!$conn) {die('不能连接数据库服务器: ' . mysql_error());}
$sqlstr = "create database " . $dbname;
//mysql_query($sqlstr) or die("无法创建数据库.");
mysql_select_db($dbname) or mysql_query($sqlstr) or die("无法创建数据库.");//如果有数据库进入,无就新建,建不了提示
runquery($sql) or die("无法导入数据文件."); //导入数据文件
mysql_close($conn);
?>
都是到runquery($sql) or die("无法导入数据文件."); //导入数据文件
这句错误!提示无法导入数据文件
作者: hbbyang 发布时间: 2009-11-05
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28