用navicat就可以导出了,你先下个navicat,然后我再教你操作。

解决方案 »

  1.   

    谢谢,不需要第三方工具实现,那样的工具都是给dbm使用的,权限太大,现在的要求是在指定的列表页面上给一个动作按钮,用户点击后执行导出动作,只导出当前表数据。需要php+mysql实现
    同样的另外一个需求是php实现dbf数据导入到临时表再处理,现在急切的是第一个需求
      

  2.   

    http://www.yesky.com/imagesnew/software/php/zh/ref.dbase.html手册是最好的老师
      

  3.   


    3Q3Q,有解了:)
    php.ini中需要启用
    extension=php_dbase.dll
    <?php// database "definition"
    $def = array(
      array("date",     "D"),
      array("name",     "C",  50),
      array("age",      "N",   3, 0),
      array("email",    "C", 128),
      array("ismember", "L")
    );// creation
    if (!dbase_create('test.dbf', $def)) {
      echo "Error, can't create the database\n";
    }
    // open in read-write mode
    $db = dbase_open('test.dbf', 2);if ($db) {
      dbase_add_record($db, array(
          date('Ymd'), 
          'Maxim Topolov', 
          '23', 
          '[email protected]',
          'T'));
     dbase_add_record($db,  array(
          date('Ymd'), 
          'York Topolov', 
          '26', 
          '[email protected]',
          'T')
        );   
      dbase_close($db);
    }
    ?> 
      

  4.   

    不错,基本上一个雏形已经完成
    <?
    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>";
    ?>