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=”yiyuan”;
$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{$oldTable}` (
`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()){
$InsertValueStr=iconv(“GBK”, “UTF-8”, “‘”.implode(“‘, ‘”, $row).”‘”); 
$insert=”INSERT INTO `crm_old{$oldTable}` ({$InsertFieldStr}) VALUES ({$InsertValueStr})”;
if($dsql->ExecuteNoneQuerys($insert)!=1){
echo $insert.”<br/>”;
}
}


?>

打赏

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

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

报歉!评论已关闭.