0

I have written a script to import CSV files into a mySQL database. However when I try to run the SQL from a PHP script it doesn't work. It does work when I put the SQL query into phpMyAdmin.

$server = 'localhost';
$username = 'root';
$password = 'password123';
$database = 'product';

$connect = new mysqli($server, $username, $password, $database);

if($connect->connect_error) {
    die('Connection Failed' . $connection->connect_error);
}

$files = scandir('imports/');

foreach($files as $file) {
    if ($file != '.' && $file != '..') {
        $import =
            "LOAD DATA INFILE 'imports/$file'
            IGNORE INTO TABLE temp_import
            FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
            LINES TERMINATED BY '\n'
            IGNORE 1 LINES
            (@deal_id, @redeemed_at, @wowcher_code, @deal_title, @customer_name, @house_name_number, @address_line_1, @address_line_2,
        @city, @county, @postcode, @email, @phone, @date_of_birth, @custom_field, @marketing_permission, @product_name, @product_options)
        set deal_id=@deal_id, redeemed_at=@redeemed_at, wowcher_code=@wowcher_code, deal_title=@deal_title, customer_name=@customer_name,
        house_name_number=@house_name_number, address_line_1=@address_line_1, address_line_2=@address_line_2, city=@city, county=@county,
        postcode=@postcode, email=@email, phone=@phone, date_of_birth=@date_of_birth, custom_field=@custom_field,
        marketing_permission=@marketing_permission, product_name=@product_name, product_options=@product_options";

        if(! $connect->query($import)) {
            echo 'Failed: ' . $file . PHP_EOL;
        }

        else {
            $connect->query($import);

            echo mysqli_affected_rows($connect) . PHP_EOL;
        }
    }
}

Can anyone see why this may not be working

Edward144
  • 453
  • 5
  • 22

0 Answers0