本代码属于单表转换,在开始转换之前,假设你已经对应sqlite3数据的某张表在mysql数据库中建立相同名称的表和列,这里假设表中的列为,colname1,colname2,colname3...
<?php
//设置php执行时间无限制
set_time_limit(0);
//sqlite3 config
//请注意sqlite3数据库使用sqlite方法去操作会报错
//提示是一个加密文件或者不是一个数据库
//这里使用PDO驱动来连接和查询sqlite3数据库
//将sqlite3数据库与该脚本页面放在同目录
define('CONNECTSTRING', "sqlite:".dirname(__FILE__)."/sqlite3_db_name.db");
//这里的sqlite3数据库连接用户名和密码随意写,因为创建sqlite3数据库时没有密码
//如果创建时有密码,请根据设置密码修改成正确值
define('USERNAME', 'username');
define('PASSWORD', 'password');
define('CHARSET','SET NAMES utf8');
//mysql config
$db='localhost';
$user='usernmae';
$pass='password';
$dbname='mysql_db_name';
//sqlite connection
$dbh=null;
if($dbh=new PDO(CONNECTSTRING, USERNAME, PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => CHARSET))){
$dbh->beginTransaction();
//设置内存无限制,如果机器配置较高可以这么设置
ini_set('memory_limit', '-1');
$sth = $dbh->prepare('SELECT * FROM sqlite3_table_name');
$sth->execute();
//查询结果,得到一个数组
$result = $sth->fetchAll();
//打开mysql,准备插入
$conn=mysql_connect($db,$user,$pass) or die("conn error");
//设置操作mysql数据库的编码
mysql_query("set names 'utf8'");
mysql_select_db($dbname);
foreach($result as $row){
$sql="";
$sql="INSERT INTO mysql_db_name(colname1,colname2,colname3) VALUES('";
$sql=$sql.$row['colname1']."','".$row['colname2']."','".$row['colname3']."')";
mysql_query($sql);
}
mysql_close($conn);
//相当于关闭sqlite3数据库
$dbh=null;
}
?>
新手可以看看,高手勿喷,谢谢。