2017-05-31 9 views
0

multidimensionalアレイをmysqlに保存するには?私は以下のコードを持って、多次元配列を持つMysql上の重複データストア

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:私はGoogleがこれに関する上記のコードで出てくるが、それは意志持っ

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 

私が間違って使用している場合、またはベストプラクティスを使用していない場合は、お詫び申し上げます。 Webプログラミングでまだ学んでいます。

答えて

1

これはそれを行うには良い方法である:(1048)列「name」をnull`なのですることはできませんが、データは、MySQL上のストアです:

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(); 
+0

私はエラー '失敗した実行を取得していますが、なぜ私が知っているかもしれません。それはforループのためですか? – Amran

+0

アレイに別のキーを追加しましたか? – styl3r

関連する問題