Skip to content

Instantly share code, notes, and snippets.

@matusk
Created September 16, 2016 14:32
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save matusk/2828c98ed805ee0b2b84870bdcefdceb to your computer and use it in GitHub Desktop.
Save matusk/2828c98ed805ee0b2b84870bdcefdceb to your computer and use it in GitHub Desktop.
LOAD DATA INFILE (MySQL)
<?php
$dbHost = '';
$dbName = '';
$dbTable = '';
$dbUser = '';
$dbPassword = '';
$fieldSeparator = ',';
$lineSeparator = "\n";
$csvFile = 'filename.csv';
if (!file_exists($csvFile)) {
die('File not found. Make sure you specified the correct path.');
}
try {
$pdo = new PDO(
'mysql:host=' . $dbHost . ';dbname=' . $dbName,
$dbUser,
$dbPassword,
array(
PDO::MYSQL_ATTR_LOCAL_INFILE => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
)
);
} catch (PDOException $e) {
die('database connection failed: ' . $e->getMessage());
}
// http://dev.mysql.com/doc/refman/5.7/en/load-data.html
$affectedRows = $pdo->exec(
'LOAD DATA LOCAL INFILE ' . $pdo->quote($csvFile) . ' ' .
'INTO TABLE `' . $dbTable . '` ' .
'FIELDS TERMINATED BY ' . $pdo->quote($fieldSeparator) . ' ' .
'LINES TERMINATED BY ' . $pdo->quote($lineSeparator)
);
echo 'Loaded a total of ' . $affectedRows . ' records from csv file.';
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment