我正在嘗試將多選中的數據插入具有多行的數據庫中。我曾經設法將它們全部插入一行,每行都有一個逗號,這從數據庫的角度來看并不是很好。來自多選的數據作為數組存儲在變量中,然后應該使用 foreach 循環將其填充到數據庫中的多行中。$array = implode((array)$_POST['multiselectdata']);$sql = "INSERT INTO tbl_example (column1, column2) VALUES (?, ?)";$stmt = mysqli_stmt_init($conn);if(!mysqli_stmt_prepare($stmt, $sql)){ .... exit();}else { mysqli_stmt_bind_param($stmt, "ii", $array, $id); mysqli_stmt_execute($stmt); $result= mysqli_stmt_store_result($stmt); mysqli_fetch_all($result,MYSQLI_ASSOC); foreach($result as $row){ echo $row["column1"]; } exit()}因此,在每一行中,第 1 列和第 2 列中的數組應該顯示 1 個值,并且總是會有相同的 ID。目前這只會在數據庫中插入 1 個值,并且只有 1 行
1 回答

收到一只叮咚
TA貢獻1821條經驗 獲得超5個贊
$_POST['multiselectdata']您可以將其作為數組迭代并為數組中的每個值執行準備好的語句,而不是內爆內容:
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)){
// ....
exit();
}
else {
mysqli_stmt_bind_param($stmt, "ii", $value, $id);
foreach (explode(',', $_POST['multiselectdata']) as $value) {
mysqli_stmt_execute($stmt);
}
}
請注意,調用mysqli_stmt_store_result上的INSERT查詢是沒有意義的,因為沒有結果集。foreach應該從您的代碼中刪除該行和后面的循環。
- 1 回答
- 0 關注
- 185 瀏覽
添加回答
舉報
0/150
提交
取消