PHP - 将类型为Time的变量插入到Time类型的MySQL列中

时间:2011-07-29 02:42:22

标签: php mysql time insert

我一直收到这个错误:

“可捕获的致命错误:类DateTime的对象无法转换为字符串”

从这段代码:

<?php
   $value_startTime = new DateTime();
   $value_startTime->setTime($value_HourStart,$_POST['TextBoxStartMin'],0);

   $value_endTime = new DateTime();
   $value_endTime->setTime($value_HourEnd,$_POST['TextBoxEndMin'],0);

   $query_InsertJob="INSERT INTO job (jobDesc,timeStart,timeEnd)
   VALUE ('$_POST[TextAreaProblem]','$value_startTime','$value_endTime')";
?>

这些变量的值可以是00到23: $ value_HourStart $ value_HourEnd

这些变量的值可以是00到59: $ _ POST [ 'TextBoxStartMin'] $ _POST [ 'TextBoxEndMin']

我没遇到任何问题: $ _POST [TextAreaProblem]

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您需要将这些DateTime对象转换为字符串,以便在查询中使用。

尝试类似这样的事情(PDO示例,因为我不能鼓励人们使用mysql_*函数)

$stmt = $db->prepare('INSERT INTO job (jobDesc, timeState, timeEnd) VALUES (?, ?, ?)');
$stmt->execute(array(
    $_POST['TextAreaProblem'],
    $value_startTime->format('H:i:s'),
    $value_endTime->format('H:i:s')
));

答案 1 :(得分:0)

$ value_startTime和$ value_endTime是对象。尝试使用$ value_startTime-&gt; getTimestamp()。

$query_InsertJob="INSERT INTO job (jobDesc,timeStart,timeEnd) VALUE ('$_POST[TextAreaProblem]','".$value_startTime->getTimestamp()."','"$value_endTime->getTimestamp()."')";