【问题标题】:How to read text file and insert the extracted info into database如何读取文本文件并将提取的信息插入数据库
【发布时间】:2016-10-16 16:14:09
【问题描述】:

我有一个包含多组以下信息的文本文件:

-----------------------------------
TXN NO        : 30
DATE & TIME   : 30/09/16 16:48:28
TXN TYPE      : CASH WITHDRAWAL
CARD NO       : 436444XXXXXX6086
TRANS AMOUNT  : 3,000.00
COUNTERS      : 5 -   0 , 6 -   0 , 7 -   0 , 8 -   0 
AUTH CODE     : 606662
TRACE NO/ID   : 606662
RESP CODE     : 00
-----------------------------------

现在我需要将每个对应的键/值对插入到数据库中。

这是我尝试过的:

$target_file = 'my_file.txt';
$lines = file($target_file);//file in to an array

foreach($lines as $line) {
    $var = explode(':', $line, 2);
    $arr[$var[0]] = $var[1];
}
//finally inserted $arr to data table

这未能插入键/值对。

【问题讨论】:

  • 数据库代码在哪里?你标记为“mysql”。由于可能的 sql 注入,您的“尝试”代码可能已失败。
  • 我没有给那里我的数据库代码。使用如下行将每组 $arr 插入到表中。 $db_object->query_insert('tbl_name', $arr); // 明显地;在此之前存在连接。
  • 然后检查错误,或者等待已经使用相同方法的人。
  • 显示你的代码 .. for db .. 即使它是错误的
  • 请阅读“minimal reproducible example”。我们需要演示问题的代码,而不是代码的开头。我们会帮助您修复您编写的内容,但如果您不向我们展示演示它的最少代码,我们将提出与您编写的内容无关的解决方案,这对您没有帮助并且浪费我们的时间。跨度>

标签: php mysql regex text


【解决方案1】:

在您的情况下,您在日期和时间中有额外的冒号 (:)。你必须删除它。您的问题也可能出在 sql 中。

<?php

$lines = file('test.txt');//file in to an array
$var = array();
foreach($lines as $line) {
    $var[] = array_map('trim', explode(':', $line, 2));   
}

for($x=0; $x<count($var); $x++){
    foreach($var[$x] as $k){
        echo $k.'<br>';//Insert into database
    }
}

?>

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多