# MySQL have a function allow us import data from text file, csv file to a table
# This function reads rows from a text file into a table at a very high speed
# References: https://dev.mysql.com/doc/refman/5.7/en/load-data.html
LOAD DATA LOCAL INFILE 'data.csv' INTO TABLE orders
FIELDS TERMINATED BY ','
ENCLOSED BY '\"'
LINES TERMINATED BY '\\n'
IGNORE 1 LINES (`Payment_date`, `personId`, `playingCurrency`, `playingOriginalAmount`)";
# There is an issue when we use that command in PHP with MariaDB or a new MySQL server version
# PHP script will throw an error like bellow:
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1148 The used command is not allowed with this MariaDB version
# This issue happened because in MariaDB and new MySQL server, the LOAD DATA LOCAL function was disabled by default and the php5-mysql driver is not compatible.
# To fix that issue we need to update mysql config file and replace php5-mysql with a native driver
# 1. Edit mysql config file:
sudo nano /etc/mysql/my.cnf
Then Add:
[mysqld]
local-infile
[mysql]
local-infile
# 2. Replace php5-mysql by a native driver
apt-get install php5-mysqlnd
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.