添加时间戳并将不成功的数据库条目添加到pdf

时间:2015-07-02 00:25:20

标签: php mysql pdf

我刚刚开始使用PHP& amp; MYSQL。我想创建一个CSV文件导入器,然后将条目写入数据库,但具有各种验证。我想在datetime列中添加当前时间和日期,其中当数据库显示“是”时停止的任何产品将发布产品停止的日期和时间。我还想将条目添加到各种错误条件的PDF文件/报告格式中。错误将包括未通过if条件(如正则表达式)且未添加到数据库的任何条目。

<?php
    include_once('connection.php');
    date_default_timezone_set('Europe/London');
    $date = date('d/m/y h:i:s a', time());
    $filetxt = "./errors.txt";
    $var1 = 5;
    $var2 = 1000;
    $var3 = 10;
    if(isset($_POST["Import"]))
    {
        echo $filename=$_FILES["file"]["tmp_name"]; 
        if($_FILES["file"]["size"] > 0)
        {
            $file = fopen($filename, "r");
            while(($emapData = fgetcsv($file, 10000, ",")) !==FALSE)
            {
                // adds data to the sql database
                if($var1 <= $emapData[3] && $var3 <= $emapData[4] && $var2 >= $emapData[4] && preg_match("/^[a-zA-Z0-9]+$/", $value) == $emapData[1] && preg_match("[a-zA-Z]", $value) == $emapData[2] && preg_match("[a-zA-Z]", $value) == $emapData[6]){
                $sql = "INSERT INTO tblproductdata(strProductCode, strProductName, strProductDesc, intStock, intPrice, dtmAdded, dtmDiscontinued) VALUES('$emapData[0]','$emapData[1]','$emapData[2]','$emapData[3]','$emapData[4]','$date','$date')";
                echo "test 1";
                }
                else if($var1 <= $emapData[3] && $var3 <= $emapData[4] && $var2 >= $emapData[4] && preg_match("/^[a-zA-Z0-9]+$/", $value) == $emapData[1] && preg_match("[a-zA-Z]", $value) == $emapData[2] && preg_match("[\s]", $value) == $emapData[6]){
                    $sql = "INSERT INTO tblproductdata(strProductCode, strProductName, strProductDesc, intStock, intPrice, dtmAdded, dtmDiscontinued) VALUES('$emapData[0]','$emapData[1]','$emapData[2]','$emapData[3]','$emapData[4]','null','null')";
                    echo "test 2";
                    }
                else{   
                $write = "$emapData[0], $emapData[1], $emapData[2], $emapData[3], $emapData[4], $emapData[5], $emapData[6], $emapData[7]\n\n";   
                 file_put_contents($filetxt , $write , FILE_APPEND);
                }
                $res=$conn->query($sql);
            }
            echo "$sql";
            fclose($file);
            echo "CSV File has successfully been Imported";
        }
        else
        {
            echo "Invalid File: Please Upload a Valid CSV File";
        }
    }
header("Location: index.php");
?>

我特别需要帮助将不成功的数据库条目添加到PDF。

1 个答案:

答案 0 :(得分:1)

存储当前日期和时间

MySQL支持two different formats来存储带有时间,日期时间和时间戳的日期。我将在此处显示带时间戳的示例。

每当插入一行时,您也可以告诉MySQL使用当前日期和时间填充您的字段(阅读更多here)。用于创建表的SQL看起来有点像这样:

CREATE TABLE test (
  name CHAR(30),
  time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)

如果在未设置时间值的情况下插入表格,则会设置当前时间:

INSERT INTO(name) VALUES("some text")

您也可以手动设置值:

INSERT INTO(name, time) VALUES("some text", CURRENT_TIMESTAMP)

写入PDF

看看FPDF。但是,对于只写错误日志,普通文本文件会更简单,也许更合适。