include_once("include.php")
$card=445//接收$card
//英文字段转中文字段
function field_conv($en,$card){
global $DbUseDatabase,$DbMHost,$DbMUser,$DbMPass
$db = new newquery($DbUseDatabase,$DbMHost,$DbMUser,$DbMPass)
$db->query("select fieldname from t_cardinfo where cardkind=$card and field ='$en'")
if($db->next_record()){
return $db->f(0)
}
else
return false
}
function mysql_to_dbf($mysql_datasource,$source_table,$destination_dbf)
{
global $DbUseDatabase,$DbMHost,$DbMUser,$DbMPass,$card
$link=mysql_connect($DbMHost,$DbMUser,$DbMPass) or exit("不能链接到数据库")
$operate=mysql_select_db($mysql_datasource,$link)
//连mysql数据源
$rs=mysql_query("SELECT * from ".$source_table." limit 0,1")
$number_of_fields=mysql_num_fields($rs)//取字段数量
//不要前面5个底层字段
for($field_counter=5$field_counter<$number_of_fields$field_counter++)
{
$dbf_field_type=mysql_field_type($rs,$field_counter)
$dbf_field_name=mysql_field_name($rs,$field_counter)
$dbf_field_len=mysql_field_len($rs,$field_counter)
//print($dbf_field_name)
if(isset($point)){
unset($point)
array_pop($field)
}
switch($dbf_field_type)
{
case "string":
$dbf_field_name=substr(mysql_field_name($rs,$field_counter),0,10)
$dbf_field_len=mysql_field_len($rs,$field_counter)
if($dbf_field_len>=255)
{
$dbf_field_len--
}
$dbf_field_type="C"
break
case "varchar":
$dbf_field_name=substr(mysql_field_name($rs,$field_counter),0,10)
//自由表的字段名不能超过10,请注意
$dbf_field_len=mysql_field_len($rs,$field_counter)
if($dbf_field_len>=255)
{
$dbf_field_len--
}
$dbf_field_type="C"
break
case "decimal":
$dbf_field_name=substr(mysql_field_name($rs,$field_counter),0,10)
//自由表的字段名不能超过10,请注意
$dbf_field_len=mysql_field_len($rs,$field_counter)
if($dbf_field_len>=255)
{
$dbf_field_len--
}
$dbf_field_type="C"
break
case "real":
$dbf_field_name=substr(mysql_field_name($rs,$field_counter),0,10)
//自由表的字段名不能超过10,请注意
$dbf_field_len=mysql_field_len($rs,$field_counter)
if($dbf_field_len>=255)
{
$dbf_field_len--
}
$dbf_field_type="N"
$dbf_field_len="10"
$point="0"
break
case "date":
$dbf_field_type="D"
break
}
$fieldname=field_conv($dbf_field_name,$card)
$fieldname=subcnstr($fieldname, 9, '')//字段最长10个字符
$field[0]=$fieldname
$field[1]=$dbf_field_type
$field[2]=$dbf_field_len
if(isset($point)) {
$field[3]=$point
}
$dbf[]=$field
}
$d = array_map(null, $dbf)
if (!dbase_create($destination_dbf,$dbf)){
print "<strong>Error!</strong>"
exit
}
//else
// print "<strong>ok!</strong>"
//写入字段名完成!
$dbfp=dbase_open ($destination_dbf,2)
$rs=mysql_query("SELECT * from ".$source_table)
$field=mysql_num_fields($rs)
while($row = mysql_fetch_array($rs))
{
$i=0
for($fieldcounter=5$fieldcounter<$field$fieldcounter++)//不要前面5个底层字段
{
$field_name=mysql_field_name($rs,$fieldcounter)
$rows[$i]=$row[$field_name]
$i++
}
dbase_add_record ($dbfp,$rows)//写入记录
}
//print_r($dbffield)
dbase_close($dbfp)
mysql_close($link)
}
mysql_to_dbf("nbw1-SY","t_cardcontent445","c:\a.dbf")
echo "<script>alert('导出完成!')</script>"
?>
导出要用到MySQL的mysqldump工具,基本用法是:shell>mysqldump [OPTIONS] database [tables]
如果你不给定任何表,整个数据库将被导出。
通过执行mysqldump –help,你能得到你mysqldump的版本支持的选项表。
1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录
如我输入的命令行:cd F:Program FilesMySQLMySQL Server 5.1bin(mysql安装路径的bin文件夹)
2,导出数据库:mysqldump -u 用户名 -p 数据库名 >导出的文件名
如我输入的命令行:mysqldump -u root -p bolg>blog.sql(输入后会让你输入进入MySQL的密码)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)