簡體   English   中英

在MYSQL中插入JSON

[英]Insert JSON in MYSQL

如何通過json_encode和foreach在數據庫mysql的輸入中插入值,這個html代碼和php代碼不能正常工作並且在數據庫表中插入值不完整如下:“[”或“1”

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

我希望他們在數據庫表行中:

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

<input name="data_1[]" value="1111111111">
<input name="data_1[]" value="2222222222">
<input name="static[]" value="12">

<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="static[]" value="56">

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

$this->db->insert_batch('MyTable', $data);

您的代碼僅將單個字符插入數據庫的原因是您使用json_encode()將數組$_POST['data_1']轉換為字符串,然后嘗試將此字符串作為數組訪問。

當您使用方括號表示法訪問字符串時(在您的代碼中: $data_1[$idx] ),PHP將其解釋為字符串中的字符訪問,從而只生成一個字符。

PHP手冊

通過使用方形數組括號在字符串后面指定所需字符的從零開始的偏移量,可以訪問和修改字符串中的字符,如$str[42] 將字符串視為用於此目的的字符數組。

看看這個工作示例:

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

<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="static[]" value="56">
<input type="submit">
</form>

<?php
$data = array();
$data_1 = $_POST['data_1'];
$static = $_POST["static"];
foreach($static as $idx=>$val){
    $data[] = array(
              'data_1' => json_encode(Array($data_1[$idx*2],$data_1[$idx*2+1])),
              'static' => $static[$idx]
                   );
}
echo "<pre>";
print_r($data);
?>

DEMO http://codepad.viper-7.com/ca51ZB

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM