sqlite3数据库单表转存mysql数据库(PHP代码)
2016-07-26 23:15
621 查看
本代码属于单表转换,在开始转换之前,假设你已经对应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; } ?>新手可以看看,高手勿喷,谢谢。
相关文章推荐
- 一个关于if else容易迷惑的问题
- MySQL中的integer 数据类型
- MySQL存储过程
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- JSP/PHP基于Ajax的分页功能实现
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- MySQL 备份和恢复策略