【问题标题】:Zend Framework: MySQL insertion error of timestampZend Framework:时间戳的MySQL插入错误
【发布时间】:2015-06-03 01:48:02
【问题描述】:

我从一个表单多次插入到数据库中。代码如下:

if(isset($_POST['Submit']))
{
               $UserID=$_POST['UserID'];
               $StartTime=$_POST['StartTime'];
               $StartDate=$_POST['StartDate'];
               $EndTime=$_POST['EndTime'];
               $EndDate=$_POST['EndDate'];
               $TimeWorked=$_POST['TimeWorked'];
               $i=0;
               foreach( $UserID as $key => $n ) 
               {
                   $UID=$UserID[$key];
                   $TW=$TimeWorked[$key];
                   $Stime =strtotime("{$StartTime[$key]} {$StartDate[$key]}");
                   $Etime = strtotime("{$EndTime[$key]} {$EndDate[$key]}");
                   echo $i."-".$n."::user Id".$UID.."//Stime:".$Stime."//Etime:".$Etime."<br/>";

                   $tasks = new Timesheets_Table_Tasks();

                   $tasks->createRow()
                   ->setFromArray(array
                       (
                           'Date'=>time(),
                           'UserID'=>$UID,
                           'Time'=>$TW,
                           'StartTime'=>$Stime,
                           'EndTime'=>$Etime

                       ))
                       ->save();
                   $i++;

               }
}

除了 StartTime 和 EndTime 之外的所有内容都插入到数据库中。我可以使用这条线显示值

'echo $i."-".$n."::user Id".$UID.."//Stime:".$Stime."//Etime:".$Etime."<br/>";'

(就在插入之前)。但是数据库中没有插入任何内容。

StartTime & EndTime 的示例值为 1427693580(timestamp)。

Mysql 结构:

  • 类型:int(11)
  • 空:是
  • 默认值:NULL。

我不确定插入这两个字段会发生什么。插入后我在数据库中得到“NULL”。请帮我找出答案。

谢谢!

【问题讨论】:

  • 因为您使用的是 Zend。我认为你必须使用 new Zend_Db_Expr('NOW()')。
  • 什么是$StartTime[$key]$StartDate[$key]?请提供表单输入。
  • echo $Stime."={".$StartTime[$key]."}{".$StartDate[$key]."}";输出:1427704800={19:40}{03/30/2015}

标签: php mysql timestamp insertion


【解决方案1】:

更换你的线路,

echo $i."-".$n."::user Id".$UID.."//Stime:".$Stime."//Etime:".$Etime."<br/>";

到,

echo $i."-".$n."::user Id".$UID.."//Stime:'".$Stime."'"."//Etime:'".$Etime."'"."<br/>";

【讨论】:

  • 我试过这条线,得到的输出为:0-35::user Id35//Stime:'1427693580'//Etime:'1427693580'
  • 也试过了。输出:0-35::user Id35//Stime:'1427696820'//Etime:'1427696820'
猜你喜欢
  • 2020-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多