当前位置: 代码迷 >> 综合 >> 在php中将access转化到mysql
  详细解决方案

在php中将access转化到mysql

热度:80   发布时间:2024-01-20 05:14:08.0
最近将 jky 的数据从mypower的access转化到了dedecms的mysql,一些问题总结一下。

1、php里面读取access数据库:

$connstr = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=".realpath("pe.mdb") ;
$connid = odbc_connect($connstr,"","",SQL_CUR_USE_ODBC);
$result = odbc_do($connid, "select ArticleID, Content from Article");

接下来,通过odbc_fetch_row($result)就可以获取纪录:

while(odbc_fetch_row($result))
{
    $articleid = odbc_result($result,"ArticleID");
    $cons = str_replace(array("'","<o:p>","</o:p>"), array("","",""), odbc_result($result,"Content"));
    print "<br>".$cons;
}

不过这里有一个问题:php读取access数据字段有大小限制,在php.ini可以设置,默认的是:
odbc.defaultlrl =4096
大概只有4KB,为此我花了不少时间寻找问什么更新成功了还是有部分数据不能插入到mysql里面去

2、html的垃圾代码问题:

这只能通过正则表达是来解决了

preg_replace(array("/<(//)?span(?(1)>|/s*?[^>]+?>)/is","/<(//)?font(?(1)>|/s*?[^>]+?>)/is","/<p/s+?[^>]+?>/is","/<td/s+?[^>]+?>/is","/</?xml:namespace/s+?[^>]+?//>/is","/((/r?/n)[/t ]*?/r?/n)+/is"),array("","","<p>","<td>","","//2"),$cons);

其中 /<(//)?span(?(1)>|/s*?[^>]+?>)/is 处理<span>标签
/<(//)?font(?(1)>|/s*?[^>]+?>)/is 处理font标签
/<p/s+?[^>]+?>/is 处理p标签

3、关于php代码运行时间问题

php代码默认运行时间是30sceond,php.ini设置:max_execution_time = 30
当然也可以在php代码里面加入这个函数:set_time_limit(30);



dede是一个很好的cms,模板制作还不算难,看准这个cms了~
  相关解决方案