如何使用 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 【问题描述】:我只是想以 ms 访问格式备份我的 mysql 数据库
【问题讨论】:
您与GUI Application DB
或console 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 命令?