我想从TXT获取信息并将其插入我的数据库中。
我想创建一个循环,开始读取第一行到两个空行, 每个线路循环都是独立的参数。
当第一行/行是“name”参数时 第二行是街道参数,第三行是城市参数,其余行是文本参数。
重要的是要注意,并非所有循环都等于它们的行数,并且每个循环分隔的是2个空行。
<?php
$file = file('try1.txt');
for ($i = 0; $i < count($file); $i++) {
$sql = "INSERT INTO `table` (`name`,`street`,`city`,`text`) VALUES ('$name','$street','$city','$text')";
mysql_query($sql);
}
?>
文件: try1.txt
答案 0 :(得分:1)
你想要这样的东西吗?
$content = "Name
Street
City
This
is
some
text
Name2
Street2
City2
Something
else
string";
//$content = file_get_contents("try1.txt");
//$link = mysqli_connect("localhost", "dbuser", "dbpass", "dbname");
$string = str_replace("\r", '', $content);
$blocks = explode("\n\n\n", $string);
foreach ($blocks as $block) {
$lines = explode("\n", $block);
$name = $city = $street = $text = "";
if (!empty($lines[0])) {
$name = $lines[0];
}
if (!empty($lines[1])) {
$street = $lines[1];
}
if (!empty($lines[2])) {
$city = $lines[2];
}
if (!empty($lines[3])) {
for ($i=3; $i < count($lines); $i++) {
$text .= " " . $lines[$i];
}
$text = ltrim($text," ");
}
var_dump ($name);
var_dump ($street);
var_dump ($city);
var_dump ($text);
echo '----------------------------'."<br />";
/*
$sql = "INSERT INTO `table` (`name`, `street`, `city`, `text`)"
. " VALUES ('".mysqli_real_escape_string($link, $name)."',"
. "'".mysqli_real_escape_string($link, $street)."',"
. "'".mysqli_real_escape_string($link, $city)."',"
. "'".mysqli_real_escape_string($link, $text)."')";
mysqli_query($link, $sql);
*
*/
}
输出
string 'Name' (length=4)
string 'Street' (length=6)
string 'City' (length=4)
string 'This is some text' (length=17)
----------------------------
string 'Name2' (length=5)
string 'Street2' (length=7)
string 'City2' (length=5)
string 'Something else string' (length=21)
----------------------------
注意:强>
那么你需要做什么:
删除$content
并取消注释file_get_contents
所在的行。
取消注释$link
行,并设置连接参数。
删除var_dump
和echo "-----"
行。
取消注释其余部分。
在此示例中,我使用mysqli
作为程序样式,检查文档PDO
或mysqli
如何使用它们OOP样式。
答案 1 :(得分:0)
创建一个脚本,该脚本读取文件并使用密钥将其存储到数组中,使用包含e对应列的数据库,创建查询"INSERT INTO your_table VALUES ($data['value1'], $data['value2'])";