【问题标题】:Duplicate data store on Mysql with multidimensional arrayMysql上的重复数据存储与多维数组
【发布时间】:2017-05-31 03:36:58
【问题描述】:

如何在mysql上存储multidimensional数组?我有以下代码,

if (isset($_POST['submit'])) {

    echo "<pre>"; var_dump($_POST); echo "</pre>";

    $nama = $_POST['nama'];
    $age = $_POST['age'];
    $array = array('nama' => $nama, 'age' => $age);

}

它会产生:

array(6) {
  ["nama"]=>
  array(2) {
    [0]=>
    string(6) "batman"
    [1]=>
    string(9) "spiderman"
  }
  ["age"]=>
  array(2) {
    [0]=>
    string(2) "40"
    [1]=>
    string(2) "35"
  }
}

存储到mysql:

require_once('db_connection/connection.php');

foreach ($array as $key => $value) {
    $stmt = $conn->prepare("INSERT INTO tanggungan (name, age) VALUES (?, ?)");
    $stmt->bind_param("ss", $nama, $age);

    foreach ($value as $index => $value) {
        $nama = $array['nama'][$index];
        $age = $array['age'][$index];   
    }

    $stmt->execute();
}

echo "New records created successfully";

$stmt->close();
$conn->close();

我有谷歌这方面的内容,并提供了上述代码,但它会复制如下数据,

id | name      | age
-------------------
1  | batman    | 40
2  | batman    | 40
3  | spiderman | 35
4  | spiderman | 35

如果我使用错误或不是最佳做法,请道歉。还在学习网络编程。

【问题讨论】:

    标签: php mysql multidimensional-array


    【解决方案1】:

    这是一个更好的方法:

    require_once('db_connection/connection.php');
    
    for ($i = 0; $i < count($array); $i++) {
    
        $stmt = $conn->prepare("INSERT INTO tanggungan (name, age) VALUES (?, ?)");
        $stmt->bind_param("ss", $array['nama'][$i], $array['age'][$i]);
    
        $stmt->execute();
        $stmt->close();
    }
    
    echo "New records created successfully";
    $conn->close();
    

    【讨论】:

    • 我可以知道为什么我收到错误Execute failed: (1048) Column 'name' cannot be null 但数据存储在 mysql 上。是因为for循环吗?
    • 您是否在数组中添加了另一个键?
    猜你喜欢
    • 2017-11-12
    • 2015-11-24
    • 2012-09-16
    • 1970-01-01
    • 2011-09-12
    • 2017-11-12
    • 2011-07-26
    • 2017-10-12
    • 2019-08-08
    相关资源
    最近更新 更多