2014-01-16 21 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