首頁 > 數據庫 > MySQL > 正文

Foxpro到MySQL的數據轉換技術介紹

2019-09-08 23:26:27
字體:
來源:轉載
供稿:網友
  傳統的 C/S 模式的編程環境下,Visual Foxpro 曾經是風靡一時的數據庫類型,然而,在輕型的數據庫級別里,MySQL 具有遠比 VFP 要好得多的特性,最大的好處當然是跨平臺特性。在本文介紹的這個應用里(這是一個實際的例子),我們把在 VFP 環境下頻繁更新的數據,通過 PHP 的 ADODB 接口同步到 MySQL 數據庫,并在入庫之前,對其中的文本的關鍵字打上標記,使之關聯到對應的連接。

  下面列出程序片段。

  conv.php
  $ADODB_PATH="C:/Apache/PHP/PEAR/ADODB";
  include("$ADODB_PATH/adodb.inc.php"); // ADODB 的類
  include("$ADODB_PATH/db_mysql.php"); // 采用了 VBB 中的類
  $conn = &ADONewConnection('vfp'); // 指定 ADODB 的連接類型為 VFP。
  $conn->PConnect('gn','sa',''); // gn 是建立在本機上的ODBC 系統 DSN 名字。
  function parse_keyword ( $oldmem ) {
  $ADODB_CACHE_DIR = 'c:/temp'; // Cache 的目錄
  $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
  $mysql_conn = &ADONewConnection('mysql'); // 指定 ADODB 的連接類型為 mysql
  $mysql_conn->PConnect('localhost','username','password','db_name');
  $sql = "select keyword,url from KEYWORD ";
  $rs = $mysql_conn->CacheExecute(1500,$sql);
  // 對 KEYWORD 的查找采用 1500 秒的緩沖。
  if (!$rs) print $mysql_conn->ErrorMsg();
  $all_col=$rs->GetArray();
  $rs->Close();
  $keyword= array();
  $url = array();
  for ( $i = 0; $i< count($all_col); $i++ ) {
  $keyword[$i] = $all_col[$i][0];
  $url[$i] = $all_col[$i][1];
  }
  $newmem=str_replace($keyword,$url,$oldmem);
  // 這是本函數里最大的功能,數組替換文本。
  // 一個語句解決一段文本里所有關鍵字的替換。
  $mysql_conn->Disconnect();
  $mysql_conn->Close();
  return $newmem;
  }
  $DB_Site = new DB_Sql;
  $DB_Site->connect();
  echo "Processing Table ...n";
  $sql = " SELECT max(seq) as seq FROM mysql_table WHERE type=0200";
  $seqinfo = $DB_Site->query_first($sql);
  $seq = $seqinfo[seq];// 取出目標數據庫中最大的 seq 值。
  $sql = " SELECT seq,type,body FROM vfp_table WHERE seq > ".$seq."" " ;
  //取出源數據庫中最新的記錄。
  $rs = $conn->Execute($sql);
  if ( $rs->EOF ) echo "Table had No new record, Max seq is [$seq].n";
  while (!$rs->EOF) {
  $sql = " INSERT INTO mysql_table VALUES ($rs->fields[seq],$rs->
  fields[type],".parse_keyword($rs->fields[body])."')";
  $DB_Site->query($sql);
  $rs->MoveNext();
  }
  $rs->Close();
  $DB_Site->close();
  $conn->Disconnect();
  $conn->Close('gn');
  ?>

MYSQL

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
久久re6热在线播放