php - 使用 PHP 和 JSON 将数组插入 MySQL 数据库

标签 php mysql json codeigniter

我想在数据库 mysql 中插入以下日期值作为 json 值,如下例所示:

我希望它们在数据库表行中:

     Column static  |                     Column data_1
Row1:      12       |  ["1111111111", "2222222222", "3333333333", "4444444444"]
Row2:      34       |  ["5555555555", "6666666666", "7777777777"]
Row1:      56       |  ["8888888888", "9999999999"]

演示: http://codepad.viper-7.com/WzGz3p

<form method="post">
<input name="static[]" value="12">
<input name="data_1[]" value="1111111111">
<input name="data_1[]" value="2222222222">
<input name="data_1[]" value="3333333333">
<input name="data_1[]" value="4444444444">

<input name="static[]" value="34">
<input name="data_1[]" value="5555555555">
<input name="data_1[]" value="6666666666">
<input name="data_1[]" value="7777777777">

<input name="static[]" value="56">
<input name="data_1[]" value="8888888888">
<input name="data_1[]" value="9999999999">

<input type="submit">
</form>

我的 php 代码不正确:

<?php
$data = array();
$data_1 = $_POST['data_1'];
$static = $_POST["static"];
foreach($static as $idx=>$val){
    $data[] = array(
              'static' => $static[$idx],
              'data_1' => json_encode(Array($data_1[$idx*2],$data_1[$idx*2+1]))             
                   );
}
//$this->db->insert_batch('MyTable', $data);

echo "<pre>";
print_r($data);
?>

最佳答案

我不推荐这种格式的数据存储在数据库中,但是如果你想以这种方式存储你必须做一些改变:

改变你的形式:

您正在处理非固定数量的字段,您可以使用如下结构:

<input name="static[NUMBER]" value="XXX">
<input name="data_NUMBER[1]" value="YYYYY">

在 php 中,您可以获得 static=NUMBER 的信息作为 $_POST["data_".NUMBER]

<form method="post">
<input name="static[1]" value="12">
<input name="data_1[0]" value="1111111111">
<input name="data_1[1]" value="2222222222">
<input name="data_1[2]" value="3333333333">
<input name="data_1[3]" value="4444444444">

<input name="static[2]" value="34">
<input name="data_2[0]" value="5555555555">
<input name="data_2[1]" value="6666666666">
<input name="data_2[2]" value="7777777777">

<input name="static[3]" value="56">
<input name="data_3[0]" value="8888888888">
<input name="data_3[1]" value="9999999999">

<input type="submit">
</form>

并更改 php:

foreach($static as $idx=>$val){
    $data_=$_POST["data_".$idx];
    $data[] = array(
        'static' => $static[$idx],
        'data_1' => json_encode($data_)             
    );
}

http://codepad.viper-7.com/i2xvKC (此处演示)

关于php - 使用 PHP 和 JSON 将数组插入 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11602971/

相关文章:

javascript - 在由另一个 Ajax 单击事件添加的 div 上运行 Ajax 单击事件

mysql - 从两个表中选择所有行

javascript - datetimepicker 中时区的用途是什么

node.js - 如何使用 json-server 部署reactJS应用程序

php - 隐藏推送通知有效负载中的 URL

php - 重写Wordpress核心函数_wp_mysql_week()

c++ - 如何在 C++ Builder 中解析这个 JSON?

javascript - 当我 “Pull to refresh” 时,我如何清理缓存?使用 Ionic 框架和 AngularJS

php - 为什么 PHP 不自动调用父构造函数?

php - 如何使用 php、my-sql、j-query 创建动态 slider