| 
<?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.";
 ?>
 
 |