$data = file("/path/to/file.txt", FILE_SKIP_EMPTY_LINES);
// make sure you have valid database connection prior to this point.
// otherwise mysql_real_escape_string won't work
$values = "('". implode("'), ('", array_map('mysql_real_escape_string', $data)). "')";
$query = "INSERT INTO `TABLE1` (`COLUMN1`) VALUES $values";
// Now just execute the query once.
mysql_query($query);
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("my_db", $con);
$file = fopen("welcome.txt", "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached
while(!feof($file))
{
$data = mysql_real_excape_string(fgets($file));
mysql_query("INSERT INTO Persons (filedata)
VALUES ($data)");
//make sure above query is right according to your table structure
}
fclose($file);
mysql_close($con);
?>
5条答案
按热度按时间lnlaulya1#
您可以使用MysqlLOAD DATA LOCAL INFILE语法
为此,请确保
Mysql
具有/path/to/file.txt
的访问权限。此外,执行查询的用户必须具有 FILE 权限。使用Pure PHP很简单。读取文件,构建查询,执行它。你需要构建查询,这样你就不会结束循环查询,这是缓慢的。
hfyxw5xn2#
为什么不使用一些正则表达式来基本上拆分它的新行,即。
然后执行
foreach
循环,即:然后,您所需要做的就是逐行填充上面的行,将其插入到数据库中的正确字段中--但请清理每一行,这样您就不会向数据库中注入任何不良内容!
lkaoscv73#
在phpMyAdmin中使用csv导入
phpMyAdmin支持CSV files导入,请查看this article以了解更多详细信息(后面的第一个结果:(
phpMyAdmin csv
)使用mysqlimport
Mysql提供CLI应用程序,mysqlimport,示例用法(同样是CSV):
第1011章:我的天
Mysql本身(客户端,查询)支持
LOAD DATA INFILE
命令,示例语法:使用php构建sql查询(并手动插入)
你将在php中解析文本文件,输出将是一个大的
INSERT
语句(当/如果你不能从你正在运行脚本的服务器连接到mysql时,这将是有用的:直接连接和直接导入
这应该是最适合您的方法。
cuxqih214#
m3eecexj5#
还要经常消毒!