0

我想将这样的数据存储2013/10/07,101003,08,04,13,22,25,20,29到 mysql 数据库中,我的表描述如下

date char(10)
index char(6)
n1 char(2)
n2 char(2)
n3 char(2)
n4 char(2)
n5 char(2)
n6 char(2)
n7 char(2)

但是当我插入2013/10/07到日期字段时,表中显示的上下文变成了一些这样的数字,91.09090909但不是2013/10/07。但是我将类型设置为char(10)它应该存储为字符串类型

还有一些前缀为 0 的数字,比如04被存储为4,如何解决这个问题?

像这样的History.txt店铺信息

2004/02/10,093020,43,33,31,01,20,21,02
2004/02/05,093010,25,08,19,35,23,20,15
2004/02/01,093001,30,05,21,41,09,33,35

这是我的代码

<?php

    $History_Data = fopen("History.txt","r");
    $Link = mysqli_connect("localhost","root","happy","l") or die ("Can't connect database\n");

    while(feof($History_Data) != 1)
    {
        $Line = fgets($History_Data);
        $Line = trim($Line,"\n");
        $Separated = preg_split("/[,]/",$Line);
        $Status = mysqli_query($Link,"Insert into history_data values ($Separated[0],$Separated[1],$Separated[2],$Separated[3],$Separated[4],$Separated[5],$Separated[6],$Separated[7],$Separated[8]);");
        echo $Status;
    }
    fclose($History_Data);

    ?>

谢谢

4

1 回答 1

3

您需要将该日期用单引号括起来。没有引号,它被解释为一个数学表达式(2013 / 10 / 07 = xx.xxxx)。

$Status = mysqli_query($Link,"Insert into history_data values ('$Separated[0]',$Separated[1],$Separated[2],$Separated[3],$Separated[4],$Separated[5],$Separated[6],$Separated[7],$Separated[8]);");

但这仍然是错误的。您应该使用正确的 mysql 数据类型,日期为 DATETIME。http://dev.mysql.com/doc/refman/5.5/en/datetime.html

于 2013-08-04T06:28:48.570 回答