导入"|"使用PHP将带分隔符的文本文件放入MySQL数据库


Import a "|" delimited text file into MySQL DB using PHP?

我试图使用PHP在本地加载一个文本文件到MySQL数据库。数据文件如下所示:

Device Name|DE:VI:CE:MAC:AD:DR:ES:SS|1376493754086|1376493754086

有许多行数据的格式与上面完全相同。

我正在尝试将这些数据加载到一个预先建立的表中,像这样:

$file = @fopen("LOCAL_data_file.txt","r");
    $values = '';
    while(!feof($file)) 
    {
        $con=mysqli_connect("127.0.0.1","root","password","my_db");
        if(mysqli_connect_errno()){
            echo "Error connecting to my_db: " . mysqli_connect_error();
        }
        $buffer = fgets($file, 4096); 
        list($a,$b,$c,$d)=explode("|",$buffer);
        /*echo $a;
        echo $b; 
        echo $c;
        echo $d;*/
        $ins="INSERT INTO 'tablet3' (Name, Address, StartTime, EndTime) VALUES
           ($a,$b,$c,$d)";
        mysqli_query($con,$ins);
     }

数据可以很好地从文件中读取,因为如果我对列表变量的回显进行反补,它将回显表中的所有数据。如果我不运行插入查询,表被创建与适当的列"名称|地址|开始时间|结束时间",但与插入查询,代码返回一个表与空数据。我简直不知道我做错了什么。

我重新创建了它这就是我要使用的查询

假设数据库结构为:

Name(varchar or text)    Address(varchar or text)    StartTime(int)    EndTime(int)

查询:

$ins="INSERT INTO `tablet3` (Name, Address, StartTime, EndTime) VALUES
           ('$a','$b',$c,$d)";

注意$a和$b周围的引号。还有table3周围的勾号。

注:在表名周围不需要任何东西

相关文章: