如何用php将mysql表导出为dbf文件
推荐于2016-11-26 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517192
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
<?
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);
//自由表的字段名不能超过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>";
?>
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);
//自由表的字段名不能超过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>";
?>
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
装一下phpmyadmin....里面可以导出为各种格式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询