【问题标题】:Form Based Arrays基于表单的数组
【发布时间】:2011-06-02 13:59:56
【问题描述】:

我正在尝试访问数组中的每个值而不对其进行序列化。 我希望将这些数据存储到 MySQL 中的日期时间字段中。 数据来自我的表单[collect] => Array ( [0] => 01 [1] => 06 [2] => 2011 [3] => 17 [4] => 41 )

如何将此数组数据存储到我的数据库“日期时间”字段列中?

$dd=$_POST('$collect[0]'); 
$mm=$_POST('$collect[1]'); 
$yy=$_POST('$collect[2]'); 
$hh=$_POST('$collect[3]'); 
$ii=$_POST('$collect[4]');
$ddate = ('$yy','$mm','$dd',NULL,'$hh','$ii',NULL)

我在上面尝试做的是获取每个数组值并将其存储在变量名中,然后使用变量 $ddate 作为日期时间存储在我的数据库中。我不确定这是否可能,但我尝试过序列化,但日期不会插入数据库,只是在数据库上显示格式0000/00/00 00:00,所以我正在尝试上面的方法,看看这是否可行。

如果我可以使用通用方法代替上述方法,请有人给我看一个我可以使用的小例子。

【问题讨论】:

  • 代码样式是为了……你知道……更容易阅读和理解。万一你不得不让别人看你的代码......你知道...... StackOverflow

标签: php mysql arrays serialization webforms


【解决方案1】:

从你的例子中我不太明白你用什么语言编码,但在 PHP 中它会是这样的:

$time = mktime(
    $_POST['collect'][3],
    $_POST['collect'][4],
    0,
    $_POST['collect'][1],
    $_POST['collect'][0],
    $_POST['collect'][2],
);

$datetime = date('Y-m-d H:i:s', $time);

参数顺序请参考mktime() documentation

另外,如果您需要其他日期格式,请参阅date()

【讨论】:

    【解决方案2】:

    根据您所写的内容,我假设表单字段名为 collect[],因为您正在尝试访问其索引。

    但是,您在这里使用了错误的方法 - $_POST 是一个数组,但您尝试将其用作函数(不是说不可能,而是出于这个目的 - 这真的不是这样做的方法)。

    $dd = $_POST['collect'][0];
    $mm = $_POST['collect'][1];
    

    以此类推,直到到达数组的最后一个元素。

    如果您将一些用户提交的日期存储到 MySQL - 是的,有更好的方法来做到这一点。如果您想知道它们是什么,请随时发表评论,以便我发表我对存在哪些更好方法的看法。

    【讨论】:

      【解决方案3】:

      试试这个从你的 POST 请求中获取数据:

      $collect = $_POST['collect'];
      $dd=$collect[0];
      $mm=$collect[1];
      $yy=$collect[2];
      $hh=$collect[3];
      $ii=$collect[4];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-18
        • 2019-06-11
        • 1970-01-01
        • 2018-11-06
        • 1970-01-01
        • 2020-02-26
        • 2023-03-11
        • 1970-01-01
        相关资源
        最近更新 更多