如何使用 PHP 将 mysql 数据库导出/转换为 mdb 格式 [关闭]

Posted

技术标签:

【中文标题】如何使用 PHP 将 mysql 数据库导出/转换为 mdb 格式 [关闭]【英文标题】:How can I export/convert mysql database to mdb format using PHP [closed] 【发布时间】:2013-04-10 05:04:16 【问题描述】:

有没有php类可以将mysql数据库转换成mdb格式

我只是想以 ms 访问格式备份我的 mysql 数据库

【问题讨论】:

您与GUI Application DBconsole application DB 合作过吗? 你有 phpmyadmin 吗? 深盘树:是的phpmyadmin 有必要使用php吗? 我的问题有什么问题? 【参考方案1】:

如果您要一个库,here 中有一个库

您可以使用 COM 来访问 MDB 驱动程序,在 phpclasses 中有一个简单的类作为对此的包装器,您可以使用它来获取灵感或直接移植它,无论哪种方式都是完全可能的:

这是课程:

<?php    
class mdb 
 
  var $RS = 0; 
  var $ADODB = 0; 

  var $RecordsAffected; 

  var $strProvider = 'Provider=Microsoft.Jet.OLEDB.4.0'; 
  var $strMode     = 'Mode=ReadWrite'; 
  var $strPSI      = 'Persist Security Info=False'; 
  var $strDataSource  = ''; 
  var $strConn     = ''; 
  var $strRealPath = ''; 

  var $recordcount = 0; 
  var $ok = false; 


  /** 
  * Constructor needs path to .mdb file 
  * 
  * @param string $dsn = path to *.mdb file 
  * @return boolean success  
  */ 
  function mdb( $dsn='Please enter DataSource!' ) 
   
    $this->strRealPath = realpath( $dsn ); 
    if( strlen( $this->strRealPath ) > 0 ) 
     
      $this->strDataSource = 'Data Source='.$this->strRealPath; 
      $result = true; 
     
    else 
     
      echo "<br>mdb::mdb() File not found $dsn<br>"; 
      $result = false; 
     

    $this->RecordsAffected = new VARIANT(); 

    $this->open(); 

   // eof constructor mdb() 


  function open( ) 
   
    if( strlen( $this->strRealPath ) > 0 ) 
     

      $this->strConn =  
        $this->strProvider.';'. 
        $this->strDataSource.';'. 
        $this->strMode.';'. 
        $this->strPSI; 

      $this->ADODB = new COM( 'ADODB.Connection' ); 

      if( $this->ADODB ) 
       
        $this->ADODB->open( $this->strConn ); 

        $result = true; 
       
      else 
       
        echo '<br>mdb::open() ERROR with ADODB.Connection<br>'.$this->strConn; 
        $result = false; 
       
     

    $this->ok = $result; 

    return $result; 
   // eof open() 


  /** 
  * Execute SQL-Statement 
  * @param string $strSQL = sql statement 
  * @param boolean $getrecordcount = true when a record count is wanted 
  */ 
  function execute( $strSQL, $getrecordcount = false ) 
   

    $this->RS = $this->ADODB->execute( $strSQL, &$this->RecordsAffected ); 

    if( $getrecordcount == true ) 
     

      $this->RS->MoveFirst(); 
      $this->recordcount = 0; 

      # brute force loop 
      while( $this->RS->EOF == false ) 
       
        $this->recordcount++; 
        $this->RS->MoveNext(); 
       
      $this->RS->MoveFirst(); 

     


   // eof execute() 

  function eof() 
   
    return $this->RS->EOF; 
   // eof eof() 

  function movenext( ) 
   
    $this->RS->MoveNext(); 
   // eof movenext() 

  function movefirst() 
   
    $this->RS->MoveFirst(); 
   // eof movefirst() 

  function close() 
   

    @$this->RS->Close(); // Generates a warning when without "@" 
    $this->RS=null; 

    @$this->ADODB->Close(); 
    $this->ADODB=null; 
   // eof close() 

  function fieldvalue( $fieldname ) 
   
    return $this->RS->Fields[$fieldname]->value; 
   // eof fieldvalue() 

  function fieldname( $fieldnumber ) 
   
    return $this->RS->Fields[$fieldnumber]->name; 
   // eof fieldname() 

  function fieldcount( ) 
   
    return $this->RS->Fields->Count; 
   // eof fieldcount()   

 // eoc mdb 
?>

还有一个例子:

include 'class_mdb.php'; 

$mdb = new mdb('mymdbfile.mdb'); // your own mdb filename required 
$mdb->execute('select * from table'); // your own table in the mdb file 

# 
# first example: using fieldnames 
#  

while( !$mdb->eof() ) 
 
  echo $mdb->fieldvalue('description'); // using your own fields name 
  echo ' = '; 
  echo $mdb->fieldvalue( 1 ); // using the fields fieldnumber 
  echo '<br>'; 
  $mdb->movenext(); 
 

echo '<br><hr><br>'; 

# 
# Going back to the first recordset for the second example 
# 
$mdb->movefirst(); 

# 
# This works, too: Make each Field an object. The values change 
# when the data pointer advances with movenext(). 
#  
$url = $mdb->RS->Fields(1); 
$bez = $mdb->RS->Fields(2); 
$kat = $mdb->RS->Fields(3); 

while( !$mdb->eof() ) 
 
  # works! 
  echo $bez->value; 
  echo ' = '; 
  echo $url->value; 
  echo '<br>'; 
  $mdb->movenext();  
 

$mdb->close();

参考post

更新

现在,如果您可以创建 mdb 文件,您可以将您的 mysql 数据库导出到那里。

【讨论】:

以上是关于如何使用 PHP 将 mysql 数据库导出/转换为 mdb 格式 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PHP 将 mdb 文件转换为 mysql 文件或 mysql 命令?

使用php将mysql数据导出到ODF

如何使用 php 脚本导出和导入 mysql 数据库及其数据?

mysql数据库如何转换成.sql文件?

如何使用php从服务器导出和导入mysql数据库

如何将 MySQL 查询转换为 PHP 代码