2013-08-04 34 views
0

我想存儲這樣2013/10/07,101003,08,04,13,22,25,20,29到MySQL數據庫中的數據,我的表說明如下如何將XXXX/XX/XX等數據插入表格字段?

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,如何解決這個問題?

這樣

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 

History.txt存儲信息,這裏是我的代碼

<?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); 

    ?> 

感謝

+1

你知道MySql有多種數據類型 - http://dev.mysql.com/doc/refman/5.0/en/data-type-overview.html - 一種是'DATETIME',它更合適。也許INTS不會錯過。 –

+0

爲每個字段使用正確的數據類型不僅會更好,而且還會爲您的數據提供更多的靈活性,以便實例搜索和MySQL提供的其他功能。 – Prix

+0

@EdHeal我知道有一個DATETIME類型,但格式不像我得到的txt文件一樣,所以我想直接存儲爲文本。 – user2131116

回答

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