INSERT mySQL DATE无法使用PHP运行

时间:2014-01-16 23:52:44

标签: php mysql date insert phpmyadmin

我使用PHPMyAdmin创建了一个新表,我遇到了使用PHP插入DATE的问题。非常简单的代码和表格,用于故障排除。

<?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的快照。

3 个答案:

答案 0 :(得分: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");
}
?>   

答案 1 :(得分:0)

日期应该不是问题。由于您要插入当前日期这一事实,我建议使用UTC_TIMESTAMP()这对于收集中性时区数据非常有用,例如,如果您的用户位于全球范围内,则不要使用本地服务器次问题。
第二,避免使用这样一个旧的,已弃用且不安全的语句,使用PDO来保护你免受SQL INJECTION的严重攻击。

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

不知道您的表格设计或schema,但我建议在插入所有数据后插入时间戳作为验证,安全元素。

答案 2 :(得分:0)

您是否在Type中将{Date}行的TIMESTAMP设置为PHPMyAdmin?您的代码似乎是正确的。