将数组保存到DB

时间:2016-10-08 10:53:05

标签: php mysql arrays

我是PHP Arrays的新手......但是我创建了一个数组来获取已在表单中提交的2个日期之间的所有日期。

见下文:

$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] =&gt; 2016-10-10 [1] =&gt; 2016-10-11 [2] =&gt; 2016-10-12 [3] =&gt;   2016-10-13 [4] =&gt; 2016-10-14 [5] =&gt; 2016-10-15 [6] =&gt; 2016-10-16 [7]   =&GT; 2016-10-17 [8] =&gt; 2016-10-18 [9] =&gt; 2016-10-19)

有没有办法使用PHP将每个日期保存到MySQL数据库?

4 个答案:

答案 0 :(得分:3)

从范围do loop获取日期后,插入数组的每个值。

$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;
        }
    }   

答案 1 :(得分: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

您还可以使用内爆爆炸

示例 -

<?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);
?>

答案 2 :(得分:0)

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

如下面的代码:

     this._renderRow = this._renderRow.bind(this) 

答案 3 :(得分:0)

您无法在数据库中存储数组,但替代解决方案是将数组转换为JSON字符串。

您可以将数组转换为json&amp;存储到数据库中。

$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,用于转换为数组,如果不提供TRUE,json将转换为PHP对象。