直接贴代码:
/*
创建ADO连接
*/
$conn = @new COM("ADODB.Connection") or die ("ADO Connection faild.");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("test1.mdb");
$conn->Open($connstr); /*
创建记录集查询
*/
$rs = @new COM("ADODB.RecordSet");
$rs->Open("select * from PE_Article",$conn,1,3);
/*
循环读取数据
*/
$i=0;
$n=9;
while(!$rs->eof){
$a[$i] = iconv("gb2312","utf-8",$rs->Fields["Title"]->Value);
$b[$i] = $rs->Fields["ArticleID"]->Value;
$q[$i] = $rs->Fields["ChannelID"]->Value;
$d[$i] = strtotime($rs->Fields["UpdateTime"]->Value);
$e[$i] = $rs->Fields["Hits"]->Value;
$f[$i] = iconv("gb2312","utf-8",$rs->Fields["Author"]->Value);
$g[$i] = iconv("gb2312","utf-8",$rs->Fields["CopyFrom"]->Value);
$h[$i] = $rs->Fields["DefaultPicUrl"]->Value;
$k[$i] = strtotime($rs->Fields["CreateTime"]->Value);
$l[$i] = iconv("gb2312","utf-8",str_replace('|',',',$rs->Fields["Keyword"]->Value));
$m[$i] = iconv("gb2312","utf-8",$rs->Fields["Intro"]->Value);
$i++;
echo $c[$i];
$rs->Movenext(); //将记录集指针下移
}
$rs->close(); $conn = mysql_connect("localhost","root","123456") or die("无法连接数据库");
mysql_select_db("dedecmsv56gbk" ,$conn) or die ("未找到数据源");$c = sizeof($a);
for($j=0;$j<$c;$j++){ $sql = "insert into dede_archives(id,typeid,typeid2,sortrank,ismake,channel,arcrank,click,money,title,writer,source,litpic,pubdate,senddate,mid,keywords,lastpost,scores,goodpost,badpost,notpost,description,dutyadmin,tackid,mtype,weight) values ";
$sql =$sql ."('$b[$j]','$q[$j]','0','$d[$j]','1','1','0','$e[$j]','0','$a[$j]','$f[$j]','$g[$j]','$h[$j]','$d[$j]','$k[$j]','8','$l[$j]','0','0','0','0','0','$m[$j]','1','0','0','$n')";
mysql_query($sql);
echo "成功录入数据".$a[$j];
echo "<br/>";
echo "成功录入数据".$b[$j];
echo "<br/>";
echo "成功录入数据".$q[$j];
echo "<br/>";
echo $sql;
echo "<br/>";
$n++;
}
mysql_close();不管把从access读出来的内容转换成什么格式,存入mysql的内容都是乱码,怎么回事呢?
/*
创建ADO连接
*/
$conn = @new COM("ADODB.Connection") or die ("ADO Connection faild.");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("test1.mdb");
$conn->Open($connstr); /*
创建记录集查询
*/
$rs = @new COM("ADODB.RecordSet");
$rs->Open("select * from PE_Article",$conn,1,3);
/*
循环读取数据
*/
$i=0;
$n=9;
while(!$rs->eof){
$a[$i] = iconv("gb2312","utf-8",$rs->Fields["Title"]->Value);
$b[$i] = $rs->Fields["ArticleID"]->Value;
$q[$i] = $rs->Fields["ChannelID"]->Value;
$d[$i] = strtotime($rs->Fields["UpdateTime"]->Value);
$e[$i] = $rs->Fields["Hits"]->Value;
$f[$i] = iconv("gb2312","utf-8",$rs->Fields["Author"]->Value);
$g[$i] = iconv("gb2312","utf-8",$rs->Fields["CopyFrom"]->Value);
$h[$i] = $rs->Fields["DefaultPicUrl"]->Value;
$k[$i] = strtotime($rs->Fields["CreateTime"]->Value);
$l[$i] = iconv("gb2312","utf-8",str_replace('|',',',$rs->Fields["Keyword"]->Value));
$m[$i] = iconv("gb2312","utf-8",$rs->Fields["Intro"]->Value);
$i++;
echo $c[$i];
$rs->Movenext(); //将记录集指针下移
}
$rs->close(); $conn = mysql_connect("localhost","root","123456") or die("无法连接数据库");
mysql_select_db("dedecmsv56gbk" ,$conn) or die ("未找到数据源");$c = sizeof($a);
for($j=0;$j<$c;$j++){ $sql = "insert into dede_archives(id,typeid,typeid2,sortrank,ismake,channel,arcrank,click,money,title,writer,source,litpic,pubdate,senddate,mid,keywords,lastpost,scores,goodpost,badpost,notpost,description,dutyadmin,tackid,mtype,weight) values ";
$sql =$sql ."('$b[$j]','$q[$j]','0','$d[$j]','1','1','0','$e[$j]','0','$a[$j]','$f[$j]','$g[$j]','$h[$j]','$d[$j]','$k[$j]','8','$l[$j]','0','0','0','0','0','$m[$j]','1','0','0','$n')";
mysql_query($sql);
echo "成功录入数据".$a[$j];
echo "<br/>";
echo "成功录入数据".$b[$j];
echo "<br/>";
echo "成功录入数据".$q[$j];
echo "<br/>";
echo $sql;
echo "<br/>";
$n++;
}
mysql_close();不管把从access读出来的内容转换成什么格式,存入mysql的内容都是乱码,怎么回事呢?
解决方案 »
- Apache 无法访问的灵异事件
- php怎样让随机结果不等于前一次?
- 初学PHP遇到的传值问题,求高手解答
- register_shutdown_function (array(&$this, '__destruct'))解释一下~谢谢大家
- PHP获取IP的问题
- 查询sqlserver的出现的问题:不能用 DB-Library(如 ISQL)或 ODBC 3.7 或更早版本将 ntext 数据或仅使用 Unicode 排序规则的 Unicode 数
- 请问怎样在linux环境下的php代码中调用javascript函数?请举例,谢谢!
- 不让访客从侧页进站!如果他进侧页面就跳转到指定的页!
- 上传文件问题!
- 一个php的小问题!
- call_user_func()这个函数有什么用的?
- php扩展mbstring的问题
还有你的数据库是什么编码
你将Access的数据转成了utf-8格式输出,那么你的MySQL数据的编码要保证是utf8
用mysql_query("set names utf8")来实现。还有,你确定原来的Access是gb2312编码吗?
unicode 和 gbk(gb2312)通过字段的类型来区别
char、varchar 的是 gbk 编码的
charn、varcharn 的是 unicode 编码的对于你的情况,应该是后者
iconv("gb2312","utf-8",$rs->Fields["Title"]->Value)
应该为
iconv("ucs-2","utf-8",$rs->Fields["Title"]->Value)