将数组保存到数据库

3

我是一个新手,对PHP数组不太熟悉......但我已经创建了一个数组来获取在表单中提交的两个日期之间的所有日期。

请参见下面的代码:

$endDate=$_POST[todate];
            $startDate =$_POST[fromdate];

print_r(getDatesFromRange( "$datef", "$dateto" ));

function getDatesFromRange($startDate, $endDate)
{
    $return = array($startDate);
    $start = $startDate;
    $i=1;
    if (strtotime($startDate) < strtotime($endDate))
    {
       while (strtotime($start) < strtotime($endDate))
        {
            $start = date('Y-m-d', strtotime($startDate.'+'.$i.' days'));
            $return[] = $start;
            $i++;
        }
    }

    return $return;
}

这会导致以下结果:

数组([0] => 2016-10-10 [1] => 2016-10-11 [2] => 2016-10-12 [3] => 2016-10-13 [4] => 2016-10-14 [5] => 2016-10-15 [6] => 2016-10-16 [7] => 2016-10-17 [8] => 2016-10-18 [9] => 2016-10-19)

有没有一种方式可以使用PHP将每个日期保存到MySQL数据库中?
4个回答

1

在从范围获取日期后,使用循环插入数组的每个值。

$date = getDatesFromRange( "$datef", "$dateto" );
    foreach ($date as $d){
        $sql = "INSERT INTO MyDatabase (dateCol)
                VALUES ('$d')";
        if ($conn->query($sql) === TRUE) {
            echo "New record created successfully";
        } else {
            echo "Error: " . $sql . "<br>" . $conn->error;
        }
    }   

0

你可以使用 serialize / unserialize 将数组保存在 MySQL 中。

示例 -

$array = array("my", "litte", "array", 2);

$serialized_array = serialize($array); 
$unserialized_array = unserialize($serialized_array); 

var_dump($serialized_array); // gives back a string, perfectly for db saving!
var_dump($unserialized_array); // gives back the array again

你也可以使用implodeexplode

例如 -

<?php
    $vegetables[0] = "corn";
    $vegetables[1] = "broccoli";
    $vegetables[2] = "zucchini";
    $text = implode(",", $vegetables);
    echo $text;
?>


<?php
    $text = "corn, broccoli, zucchini";
    $vegetables = explode(", ", $text);
    print_r($vegetables);
?>

0

你可以使用json_encode / json_decode将数组保存在mysql中。它很容易使用。

像下面的代码一样:

<?php
    $dates = array(
         '2016-10-10', '2016-10-11'
    );
    $json_dates = json_encode($dates);
    $arr = json_decode($json_dates, true);
?>

0

你不能将数组存储在数据库中,但备选方案是将数组转换为 JSON 字符串。

你可以将你的数组转换为 JSON,并存储到数据库中。

$dates_in_json = json_encode($dates);
//Insert query
$insert = mysql_query("INSERT INTO table('dates') VALUES('".$dates_in_json ."')");

您可以从任何地方获取此数据,并像这样转换为数组

$dates_array = json_decode($dates_in_json, TRUE);

这里的第二个参数为TRUE,表示将JSON转换为数组,如果不提供TRUE,则JSON将被转换为PHP对象。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接