不止一次有同事問我同樣的問題了,在這裏提供一種PHP最簡單的實現。如果大家有更好的方式,請分享:)
代碼如下:
<?php
$db_host="192.168.1.10";
$db_user="root";
$db_psw="11111";
$db_name="csvimport";
$conn = mysql_connect($db_host,$db_user,$db_psw) or die("Connection occur error");
mysql_select_db($db_name,$conn) or die("Connection occur error");
mysql_query("set names utf-8");
mysql_query("LOAD DATA INFILE '/root/bill20120813121249.csv' INTO TABLE `billdata` FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;") or die ('Error: '.mysql_error ());
?>
以上代碼僅僅是實現的原型,大家可以根據自己的需要來改進、完善。
關於MYSQL中LOAD DATA INFILE更多使用請參考這裏:http://dev.mysql.com/doc/refman/5.1/en/load-data.html
附:
如果遇到這個問題/異常:
Error: The used command is not allowed with this MySQL version
請修改:
$dbc=mysql_connect($db_host, $db_user, $db_psw) or die(_ERROR15.": ".mysql_error());
爲 :
$dbc=mysql_connect($db_host, $db_user, $db_psw, false,128) or die(_ERROR15.": ".mysql_error());