2014-01-16 44 views
1

我使用PHPMyAdmin創建了一個新表,並且我在使用PHP插入DATE時遇到問題。很簡單的代碼和表格用於故障排除。INSERT mySQL DATE無法使用PHP

<?php 
session_start(); 

if (isset ($_SESSION['valid_user'])) 
{ 
    require ("PHP/header.php"); 
    require ("PHP/leftmenub.php"); 
    require ("PHP/bodya.php"); 

//create variables from hidden POST DATA 
    $customerid = $_POST['customerid']; 
    $requestdate = date('Y-m-d'); 

    @ $db = mysql_connect('localhost', '', ''); 
    if (!$db) 
    { 
     echo '<br><br><br><br>'; 
     echo 'Error: Could not connect to database. Please try again later.'; 
    } 

    mysql_select_db('kitorders'); 
    $query = "INSERT INTO ECLIPSE "."(requestdate,customerid)"." VALUES "." ('$requestdate','$customerid')"; 
    if (!$query) 
    { 
     echo '<br>'; 
     echo 'Error: Could not insert to database. Please try again.'; 
     require ("PHP/bodyb.php"); 
     require ("PHP/footer.php"); 
     exit; 
    } 

    require ("PHP/bodyb.php"); 
    require ("PHP/footer.php"); 
} 

else 
{ 
    echo "Thank you $FirstName, unfortunately there was a problem submitting the form."; 
    require ("PHP/bodyb.php"); 
    require ("PHP/footer.php"); 
} 
?> 

我基本上想插入其他數據插入的日期。我已經從表格和INSERT中刪除了其他項目以進行故障排除。我沒有收到錯誤,它作爲查詢被接受的行爲,但數據不會被插入。如果我刪除了DATE,則會插入其他數據。我曾嘗試使用DATE(Y-m-d)(Y,m,d)來定義$requestdate,沒有任何工作。我正在使用PHPMyAdmin來創建MySQL。我嘗試了3個不同的表,創建DATE無濟於事。我將嘗試附加PHPMyAdmin的快照。

+2

你在哪裏執行該查詢? –

+0

有這個帖子,拼寫,indending,無數問題,你有什麼嘗試..基本上堆棧溢出規則集上的每個項目都被違反... btw:mysql_ *函數被棄用! – worenga

+0

原諒我的違規行爲。 10年前我正在刷塵。很多已經改變了,我的舊代碼非常受讚賞,而且當我生鏽時,我會更新它。我切換到TIMESTAMP並且問題消失了。對於遲到的回覆,抱歉,我沒有收到我收到回覆的電子郵件通知。我現在有新的問題。 :) – user3204564

回答

0

的日期不應該是一個問題。由於您希望插入當前日期,因此我建議使用UTC_TIMESTAMP(),這對於收集中性時區數據非常有用,例如,如果您的用戶位於全球各地,則不會混淆本地服務器時間問題。
其次避免使用這樣一個陳舊,不贊成和不安全的陳述,使用PDO,它保護你免受SQL INJECTION這是一個嚴肅的線程。

$insert=$db->prepare("insert into yourtable values (?, ?);"); 
$insert->execute(array($customerid, $date)); 

不知道你的表的設計或schema,但我建議所有的數據已經被插入之後插入一個時間戳驗證,安全元素,在最後。

+0

感謝您的回覆/幫助。 TIMESTAMP解決了這個問題。我已經離開PHP和MYSQL 10年了。我所有的代碼都是塵土飛揚,破碎的,但對我來說很舒服(現在)。我正在慢慢刷掉灰塵。再次感謝。 – user3204564

+0

很高興聽到我的回答很有用@ user3204564,請選擇它作爲答案,這樣就可以回答問題所花費的時間。 – datelligence

0

試試這個:

<?php 
session_start(); 

if (isset ($_SESSION['valid_user'])) 
{ 
    require ("PHP/header.php"); 
    require ("PHP/leftmenub.php"); 
    require ("PHP/bodya.php"); 

//create variables from hidden POST DATA 
    $customerid = $_POST['customerid']; 
    $requestdate = date('Y-m-d'); 

    @ $db = mysql_connect('localhost', '', ''); 
    if (!$db) 
    { 
    echo '<br><br><br><br>'; 
    echo 'Error: Could not connect to database. Please try again later.'; 
    } 

    mysql_select_db('kitorders'); 
    $query = mysql_query("INSERT INTO ECLIPSE "."(requestdate,customerid)"." VALUES "."  ('$requestdate','$customerid')"); 
    if (!$query) 
    { 
    echo '<br>'; 
    echo 'Error: Could not insert to database. Please try again.'; 
    require ("PHP/bodyb.php"); 
    require ("PHP/footer.php"); 
     exit; 
    } 

    require ("PHP/bodyb.php"); 
    require ("PHP/footer.php"); 
} 

else 
{ 
    echo "Thank you $FirstName, unfortunately there was a problem submitting the form."; 
    require ("PHP/bodyb.php"); 
    require ("PHP/footer.php"); 
} 
?> 
0

您是否設置了日期行的TypeTIMESTAMPPHPMyAdmin?您的代碼似乎是正確的。

+0

更改爲TIMESTAMP並解決問題。但是當查詢日期時,我會得到日期和時間。我確定有一種方法可以去除時間並顯示日期。感謝您的支持。希望在你們回覆時我會收到電子郵件通知。對不起,響應緩慢。 – user3204564

+0

不要提它dude.glad它的作品... – EniGma