Login   Register  
PHP Classes
elePHPant
Icontem

File: dbf2sql.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Pablo DallOglio  >  dbf2sql  >  dbf2sql.php  >  Download  
File: dbf2sql.php
Role: ???
Content type: text/plain
Description: Class main file
Class: dbf2sql
Author: By
Last change:
Date: 2001-04-07 09:48
Size: 2,552 bytes
 

Contents

Class file image Download
<?
// This is a class that converts a .DBF file into SQL intructions
// Autor : Pablo Dall'Oglio (pablo@univates.br)
// Date :  Saturday, 07, 2001

class dbf2sql
{
    var $db;
    var $num_records;
    var $num_fields;
    var $nome_arq;
    var $table;
    var $myfile;

    // This function open DBF file, set the variables
    // returns 1 if open with success otherwise, returns 0
    function opendb($dbffile, $sqlfile, $tablename)
    {
      if (($dbffile) && ($sqlfile))
      {
        $this->db = @dbase_open($dbffile, 0);
        if ($this->db)
        {
          $this->num_records = dbase_numrecords($this->db);
          $this->num_fields = dbase_numfields($this->db);
        }
        else
        {
          return(0);
        }
        $this->nome_arq = $sqlfile;
        $this->table = $tablename;
        return(1);
      }
      return(0);
    }

    // This function open the SQL file for write
    // returns 1 if open with success otherwise, returns 0
    function opensql()
    {
      $this->myfile = @fopen($this->nome_arq, "w");
      if (!$this->myfile)
      {
        return(0);
      }
      return(1);
    }

    // This function close both DBf and SQL files
    function closeall()
    {
      fclose($this->myfile);
      dbase_close($this->db);
    }

    // This function get the columns from DBF file and
    // whrite it into a SQL file
    function GetColumns($array_columns)
    {

      $total = count($array_columns);

      // loop the database
      for($index=1; $index <= $this->num_records; $index ++)
      {
        $record = dbase_get_record($this->db, $index); // get the actual record

        // linha_mens is the SQL instruction to write into SQL file
        $linha_mens = "insert into $this->table ( ";

        // get the column names
        for($count=0; $count<$total; $count++)
        {
          $linha_mens .= $array_columns[$count][1] . ", ";

        }
        $linha_mens = substr($linha_mens,0, strlen($linha_mens)-2);
        $linha_mens .= " ) values (";

        // get the column values
        for($count=0; $count<$total; $count++)
        {
          $linha_mens .= "'" . trim($record[$array_columns[$count][0]]) . "', ";
        }


        $linha_mens = substr($linha_mens,0, strlen($linha_mens)-2);
        $linha_mens .= " ); \n";

        // Ignore deleted fields
        if ($record["deleted"] != "1")
        { fputs($this->myfile, "$linha_mens"); }

      }
    }
}
?>