php txt文件进入sql

时间:2014-12-17 12:28:25

标签: php mysql pdo mysqli

我想从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

2 个答案:

答案 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_dumpecho "-----"行。

  • 取消注释其余部分。

在此示例中,我使用mysqli作为程序样式,检查文档PDOmysqli如何使用它们OOP样式。

答案 1 :(得分:0)

创建一个脚本,该脚本读取文件并使用密钥将其存储到数组中,使用包含e对应列的数据库,创建查询"INSERT INTO your_table VALUES ($data['value1'], $data['value2'])";