我有一段時間試圖找出如何遍歷我發佈的表單數據並插入到MySQL。我的數據庫表包含兩列 「名」 和 「年齡」PHP從數組插入到mysql
我的形式:
<form action="form.php" method="post">
<input type="text" name="data[][name]" value=""/>
<input type="text" name="data[][age]" value=""/>
<input type="text" name="data[][name]" value=""/>
<input type="text" name="data[][age]" value=""/>
<input type="text" name="data[][name]" value=""/>
<input type="text" name="data[][age]" value=""/>
<input type="text" name="data[][name]" value=""/>
<input type="text" name="data[][age]" value=""/>
<input type="text" name="data[][name]" value=""/>
<input type="text" name="data[][age]" value=""/>
<input type="text" name="data[][name]" value=""/>
<input type="text" name="data[][age]" value=""/>
<input type="submit" value="submit" name="submit" />
</form>
PHP:
<?php
// Create Mysqli object
$db = new mysqli('localhost', 'root', 'root', 'database');
// Create statement object
$stmt = $db->stmt_init();
if (isset($_POST['submit'])) {
// Create a prepared statement
if($stmt->prepare("INSERT INTO contact (name, age) VALUES (?, ?)")) {
// Bind your variables to replace the ?s
$stmt->bind_param('si', $name, $age);
$returnedData = $_POST['data'];
foreach($returnedData as $data) {
$name = $data['name'];
$age = $data['age'];
$stmt->execute();
}
// Close statement object
$stmt->close();
}
}
// Close Connection
mysqli_close($link);
?>
@戴夫:不,你只綁定變量一次。它(幾乎)在內部實質上執行'param s =&$ name',建立對指定變量的引用。更改變量的值,並在下一次執行()準備好的語句時,它會得到該更改的值。 –
也可以做一個'print_r($ returnedData)'或'print_r($ _ POST)'。你的數組結構/數據不是你認爲的那樣。 – Sean
和'var_dump($ stmt-> execute)'。所有的數據庫操作都只是假設成功。 –