gpt4 book ai didi

php - 通过 php 数组将多行插入 mysql

转载 作者:行者123 更新时间:2023-11-29 12:57:28 24 4
gpt4 key购买 nike

我有一个 .txt 文件,分为几行,每行的项目分为数组 log_dates 和 log_times。我正在尝试将每个日志日期及其匹配的日志时间插入到我的数据库中,该数据库具有 log_date 和 log_time 列。

访问.txt

2014-03-16 13:57:35.089
2014-03-16 13:57:35.089
2014-03-16 13:57:35.089
2014-03-16 13:57:35.089

LogsModel.php

function __construct($db) {
try {
$this->db = $db;
} catch (PDOException $e) {
exit('Database connection could not be established.');
}
}

public function insertFileContents()
{
$filename = 'C:/Program Files/FileMaker/FileMaker Server/Logs/Access.log';

// Open the file
$fp = @fopen($filename, 'r');

// Add each line to an array
if ($fp) {
$lines = explode("\n", fread($fp, filesize($filename)));

foreach($lines as $line){
$l = explode(" ", $line);
$log_dates[] = $l[0];
$log_times[] = $l[1];

$sql = ("INSERT INTO log_table VALUES (log_date, log_time) VALUES ('$log_dates', '$log_times')");

$query = $this->db->prepare($sql);
$query->execute();
}

return true;
}

}

最终我希望拥有它,以便每次访问页面时数据库都会由 Access.txt 文件更新,该文件将继续累积新行。

最佳答案

$log_dates$log_times 不应该是数组,它们应该是字符串变量:

    foreach($lines as $line){
$l = explode(" ", $line);
$log_dates = $l[0];
$log_times = $l[1];

$sql = ("INSERT INTO log_table (log_date, log_time) VALUES ('$log_dates', '$log_times')");

$query = $this->db->prepare($sql);
$query->execute();
}

在列名称列表之前还有一个额外的 VALUES 关键字。

关于php - 通过 php 数组将多行插入 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23819935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com