Php 从Txt文件中检索数据并保存到数据库中
我有一个txt文件中的数据,我想把它保存在数据库中 mytxtfilePhp 从Txt文件中检索数据并保存到数据库中,php,mysql,Php,Mysql,我有一个txt文件中的数据,我想把它保存在数据库中 mytxtfile xxxxxxxxx xxxxxxxxx xxxxxxxxx 我想保存数据库中的每一行 我想制作一个PHP文件,它从txt文件中提取第一行并保存在db中。然后又是第二行等等 myphpcode $myFile = "data.txt"; $fh = fopen($myFile, 'r'); $theData = fgets($fh); $con=mysqli_connect("example.com","peter","a
xxxxxxxxx
xxxxxxxxx
xxxxxxxxx
我想保存数据库中的每一行
我想制作一个PHP文件,它从txt文件中提取第一行并保存在db中。然后又是第二行等等
myphpcode
$myFile = "data.txt";
$fh = fopen($myFile, 'r');
$theData = fgets($fh);
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO Persons (ID)
VALUES (''.$theData.'')");
mysqli_close($con);
?>
此代码仅保存第1行。简单如下:
$ip = fopen('data.txt', "r");
$line = trim(fgets($ip));
while(!feof($ip)){
// do something with line in $line
//....
// reading next line
$line = trim(fgets($ip));
}
您应该尝试以下方法:
while (!feof($fh)) {
$line = fgets($fh);
mysqli_query($con,"INSERT INTO Persons (ID)
VALUES ('".$line."')");
}
循环遍历文件的每一行,然后将其插入数据库
这不是最有效的方法,尤其是当你有大量的行时,但它确实起到了作用。如果你有很多行,那么你应该尝试在一次插入中完成所有操作。这个问题有两种可能: 第一个只是使用SplFileObject解析文件 在我看来,在PHP中使用Spl对象始终是一种很好的编码方式 第二个是使用MySQL的加载数据填充功能
如果您不需要使用文件中的数据,而只需要存储它们,那么这是一种很好的方法。我将首先回答您的问题。您的代码在其当前状态下很好,但问题是只读取了一行。如果要读取完整的文件内容,必须循环每一行。更改代码以包含while循环,如下所示:
$fh = fopen('file.txt', 'r');
while(!feof($fh)){
$theData = fgets($fh);
echo $theData; //save it to DB
}
检查文件指针上的文件结尾。如果达到EOF(文件结束),它将退出循环
替代解决方案:
LOAD DATA INFILE 'data.txt' INTO TABLE Persons
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
使用:
示例:
LOAD DATA INFILE 'data.txt' INTO TABLE Persons
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
使用
加载数据填充
的优点是,它比其他方法快得多,但速度可能会因其他因素而异。您真的需要PHP脚本吗?因为mysql也可以通过一个请求来实现这一点,请告诉我如何实现。。或者,我认为你在代码中遗漏了一些东西。您可以给他的第一个建议是,他没有测试文件是否存在。另一个原因是这种方法对性能有影响,因为在解析文件时需要打开连接以秒为单位添加所有行,单位为db!thanks@DavidLevel,在我看来,你和其他回答这个问题的人都想得太多了。除了我提供的内容之外,他没有要求任何其他内容,这是一种将文件内容放入数据库的简单方法。按照你的思路,你可以写一本关于如何在数据库中插入3行的小书。我知道这一点,但你不能给他留下唯一的解决方案,这一个在PHP文档中,这意味着他可以很容易地找到他自己。如果有人在这个网站上要求一个解决方案,我想他尝试了一切,想要一个更好的解决方案。但你的一个当然有效