<em id="kkln5"><ruby id="kkln5"><u id="kkln5"></u></ruby></em>
<rp id="kkln5"></rp>

    <s id="kkln5"><object id="kkln5"></object></s>
  1. <dd id="kkln5"><pre id="kkln5"></pre></dd>
  2. 首頁 > 數據庫 > 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

    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    <em id="kkln5"><ruby id="kkln5"><u id="kkln5"></u></ruby></em>
    <rp id="kkln5"></rp>

      <s id="kkln5"><object id="kkln5"></object></s>
    1. <dd id="kkln5"><pre id="kkln5"></pre></dd>