【发布时间】:2016-07-11 00:00:09
【问题描述】:
我正在使用 PHP 将 CSV 解析为 MySQL 表。
我的表“文件”中有名为“StartTime”(文件解析开始)、“EndTime”(文件解析结束)和“CreationDate”(行的时间)的时间戳列已创建)。有什么方法可以得到这些时间? NOW() 是一个好的解决方案吗?
我还有一个名为“有错误的行”的列,它是其中有错误因此不会解析的行数。如何检索 CSV 文件中出现错误的行数? (有错误的行就是类型错误的行,例如应该是:[varchar,int,timestamp,timestamp,timestamp]]
这是我的代码:
function parse($file) {
$file_handle = fopen($file, "r"); //opens CSV
while (($row = fgetcsv($file_handle, 1000, ",")) !== false){
$file_name = basename($file);
$Rows_with_errors = ?;
$StartDate= date("Y-m-d H:i:s", time() ); //?
$EndDate=?;
$CreationDate=?;
$sql = "INSERT INTO file (Filename, TotalNumberOfRows, RowsWithErrors, StartDate, EndDate, CreationDate)
VALUES('$file_name','$Total_nr_of_Rows', '$Rows_with_errors', '$StartDate', '$EndDate', '$CreationDate')";
global $conn;
$conn->query($sql); //executes the query
}
if ($sql)
{
echo 'Data uploaded to database!';
}
else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
【问题讨论】: