PHP Classes

File: index.php

Recommend this page to a friend!
  Classes of Ahmed Abdulla   PHP Convert DBF to MySQL   index.php   Download  
File: index.php
Role: Application script
Content type: text/plain
Description: The code
Class: PHP Convert DBF to MySQL
Convert old dBase III (DBF) files to MySQL
Author: By
Last change:
Date: 8 months ago
Size: 2,909 bytes
 

Contents

Class file image Download
<?php
// Step 1: Read the DBF file
$dbfFilePath = 'your_dbf_file.dbf';

if (!
file_exists($dbfFilePath)) {
    die(
"DBF file not found: $dbfFilePath");
}

// Step 2: Parse the data from the DBF file
$dbfData = [];
$dbfFile = fopen($dbfFilePath, 'rb');
if (
$dbfFile) {
   
// Read the header
   
$header = fread($dbfFile, 32);
   
$recordCount = unpack('V', substr($header, 4, 4))[1];
   
$headerLength = unpack('v', substr($header, 8, 2))[1];
   
$recordLength = unpack('v', substr($header, 10, 2))[1];

   
fseek($dbfFile, $headerLength);

   
// Read data records
   
for ($i = 0; $i < $recordCount; $i++) {
       
$record = fread($dbfFile, $recordLength);
       
$recordData = unpack('C*', $record);
       
$recordArray = [];

       
// Extract field values
       
foreach ($recordData as $index => $value) {
            if (
$index % 32 === 0) {
                continue;
// Skip the deletion flag
           
}

           
$fieldIndex = intdiv($index - 1, 32);
           
$fieldValue = trim(chr($value));
           
$recordArray[$fieldIndex] = $fieldValue;
        }

       
$dbfData[] = $recordArray;
    }

   
fclose($dbfFile);
}

// Step 3: Create a MySQL database and table
$servername = 'localhost';
$username = 'your_username';
$password = 'your_password';
$dbname = 'your_database';

// Create a connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die(
"Connection failed: " . $conn->connect_error);
}

// Create the database if it doesn't exist
$sql = "CREATE DATABASE IF NOT EXISTS $dbname";
if (
$conn->query($sql) === TRUE) {
    echo
"Database created successfully<br>";
} else {
    echo
"Error creating database: " . $conn->error;
}

// Select the database
$conn->select_db($dbname);

// Create a table with appropriate columns
$sql = "CREATE TABLE IF NOT EXISTS dbf_data (
    field1 VARCHAR(255),
    field2 VARCHAR(255),
    field3 VARCHAR(255),
    -- Add more columns as needed
)"
;
if (
$conn->query($sql) === TRUE) {
    echo
"Table created successfully<br>";
} else {
    echo
"Error creating table: " . $conn->error;
   
$conn->close();
    exit;
}

// Step 4: Insert data into the MySQL table
foreach ($dbfData as $record) {
   
$field1 = $conn->real_escape_string($record[0]); // Replace '0' with the appropriate column index
   
$field2 = $conn->real_escape_string($record[1]); // Replace '1' with the appropriate column index
   
$field3 = $conn->real_escape_string($record[2]); // Replace '2' with the appropriate column index

   
$sql = "INSERT INTO dbf_data (field1, field2, field3) VALUES ('$field1', '$field2', '$field3')";
   
    if (
$conn->query($sql) !== TRUE) {
        echo
"Error inserting record: " . $conn->error;
    }
}

$conn->close();
echo
"Data conversion and insertion completed.";
?>