php access 数据库内容批量导入到mysql

 
更多
<?php
set_time_limit(0);
require_once('include/common.inc.php');
require_once('include/Class/DbAccess.Class.php');
$dataPath='./data.mdb';
$dbusername='';
$dbpassword='';
$oldTable="yy";
$newTable="yuyue";
$access=new Db_Access($dataPath,$dbusername,$dbpassword);
$sql="SELECT TOP 1 * FROM `{$oldTable}`";
//获取单条信息
$keys=array_keys($access->GetOne($sql));
$sql="SELECT ";
foreach ($keys as $key) {
 	$sql.="max(len(`{$key}`)) AS `_{$key}`, ";
}
$sql =rtrim($sql,", ") . " FROM `{$oldTable}`";

$fields=$access->GetOne($sql);
$fieldStr="";
$InsertFields=array();
foreach ($fields as $key => $value) {
 if(!empty($value) && ($value!=0) ){
 $key = ltrim( $key, '_' );
 $InsertFields[]=$key;
 $value = ($value*3) * 2 ;
 $lens = ceil(($value/100));
 if($lens>10){
 $fieldStr.="	`{$key}` TEXT NOT NULL,\r\n";
 }else{
 $lens = $lens * 100;
 $fieldStr.="	`{$key}` VARCHAR({$lens}) NOT NULL,\r\n"; 
 } 
 }
}
$fieldStr=rtrim($fieldStr);
$CREATE=<<<EOF
CREATE TABLE IF NOT EXISTS `crm_old{$newTable}` (
 `oid` INT(10) NOT NULL AUTO_INCREMENT,
{$fieldStr}
 PRIMARY KEY (`oid`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM;
EOF;
$dsql->ExecuteSafeQuery($CREATE);
$InsertFieldStr = "`" . implode("`, `", $InsertFields) . "`";
$sql="SELECT {$InsertFieldStr} FROM `{$oldTable}`";
//循环遍历插入数据
$access->Execute ($sql);
while ($row=$access->GetArray()){
 foreach ($row as $key=>$value) {
 $row[$key]=str_replace("'", "\'", $value);
 }
 $InsertValueStr=iconv("GBK", "UTF-8", "'".implode("', '", $row)."'"); 
 $insert="INSERT INTO `crm_old{$newTable}` ({$InsertFieldStr}) VALUES ({$InsertValueStr})";
 if($dsql->ExecuteNoneQuerys($insert)!=1){
 echo $insert."<br/>";
 }
}

?>
打赏

本文固定链接: https://www.cxy163.net/archives/1110 | 绝缘体

该日志由 绝缘体.. 于 2016年05月11日 发表在 首页 分类下,
原创文章转载请注明: php access 数据库内容批量导入到mysql | 绝缘体

报歉!评论已关闭.