用navicat或者phpmyadmin等工具导出sql
在线上数据库建立一个新的数据库,然后用上述工具倒入即可
修改网站代码中的数据库配置文件,将新的数据库ip、用户名和密码写入
其实很简单,就是获取sql文件中的内容,然后将每一句sql语句一次执行就行啦。这是代码
//读取文件内容
$_sql = file_get_contents('test.sql')
$_arr = explode('', $_sql)
$_mysqli = new mysqli(DB_HOST,DB_USER,DB_PASS)
if (mysqli_connect_errno()) {
exit('连接数据库出错')
}
//执行sql语句
foreach ($_arr as $_value) {
$_mysqli->query($_value.'')
}
$_mysqli->close()
$_mysqli = null
上面text.sql是你需要执行的sql文件,DB_HOST主机名,DB_USER用户名,DB_PASS密码!
这只是最基本的自动执行sql文件,你还可以自定义生成数据库的名称,方法就是将sql文件中下面的代码删去
1
2
CREATE DATABASE IF NOT EXISTS 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
USE 数据库名
然后在text.php中执行所有的sql语句前添加代码
$_mysqli->query("CREATE DATABASE IF NOT EXISTS 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci")
$_mysqli->query("USE 数据库名")
你做好程序以后,把数据库导出成sql文件1、连接数据库
2、读取这个sql文件里的sql语句,并执行
3、生成一个数据库连接参数的php文件
<?php
$con = mysql_connect("localhost","peter","abc123")
if (!$con)
{
die('Could not connect: ' . mysql_error())
}
if (mysql_query("CREATE DATABASE my_db",$con))
{
echo "Database created"
}
else
{
echo "Error creating database: " . mysql_error()
}
mysql_close($con)
?>
<?php
class ReadSql {
//数据库连接
protected $connect = null
//数据库对象
protected $db = null
//sql文件
public $sqlFile = ""
//sql语句集
public $sqlArr = array()
public function __construct($host, $user, $pw, $db_name) {
$host = empty($host) ? C("DB_HOST") : $host
$user = empty($user) ? C("DB_USER") : $user
$pw = empty($pw) ? C("DB_PWD") : $pw
$db_name = empty($db_name) ? C("DB_NAME") : $db_name
//连接数据库
$this->connect = mysql_connect($host, $user, $pw) or die("Could not connect: " . mysql_error())
$this->db = mysql_select_db($db_name, $this->connect) or die("Yon can not select the table:" . mysql_error())
}
//导入sql文件
public function Import($url) {
$this->sqlFile = file_get_contents($url)
if (!$this->sqlFile) {
exit("打开文件错误")
} else {
$this->GetSqlArr()
if ($this->Runsql()) {
return true
}
}
}
//获取sql语句数组
public function GetSqlArr() {
//去除注释
$str = $this->sqlFile
$str = preg_replace('/--.*/i', '', $str)
$str = preg_replace('/\/\*.*\*\/(\)?/i', '', $str)
//去除空格 创建数组
$str = explode("\n", $str)
foreach ($str as $v) {
$v = trim($v)
if (empty($v)) {
continue
} else {
$this->sqlArr[] = $v
}
}
}
//执行sql文件
public function RunSql() {
foreach ($this->sqlArr as $k => $v) {
if (!mysql_query($v)) {
exit("sql语句错误:第" . $k . "行" . mysql_error())
}
}
return true
}
}
//范例:
header("Content-type:text/htmlcharset=utf-8")
$sql = new ReadSql("localhost", "root", "", "log_db")
$rst = $sql->Import("./log_db.sql")
if ($rst) {
echo "Success!"
}
?>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)