插入多个复选框数组
如果复选框值不是插入数据库后,HTML 中的 name 属性索引与 PHP 数组元素之间可能存在差异。为了解决这个问题,我们需要为每个复选框元素显式设置唯一索引:
<code class="html"><input tabindex="1" name="checkbox[0]" type="checkbox" value="17" /> <input tabindex="1" name="checkbox[1]" type="checkbox" value="20" /></code>
这将确保每个复选框在 $_POST['checkbox'] 数组中都有自己的唯一索引。
防止插入未选中的复选框
为了防止将未选中的复选框插入数据库,我们应该在插入其值之前显式检查每个复选框是否已选中:
<code class="php">if(isset($_POST['checkbox'])) { foreach($_POST['checkbox'] as $check) { if(!empty($check)) { $check = implode(',', $_POST['checkbox']); $name = implode(',', $_POST['item']); $quantity = implode(',', $_POST['quantity']); } }</code>
使用Prepared Statement方法进行插入查询
建议不要使用mysql_query,而是使用Prepared Statement进行插入查询,以防止SQL注入攻击。以下是修改插入方法的方法:
<code class="php">$stmt = $conn->prepare("INSERT INTO purchases (Product, Quantity, Price) VALUES (?, ?, ?)"); $stmt->bind_param("sis", $name, $quantity, $price); foreach ($_POST['checkbox'] as $i => $price) { $name = $_POST['name'][$i]; $quantity = $_POST['quantity'][$i]; $stmt->execute(); }</code>
其他注意事项
以上是如何在 PHP 中将多个复选框和文本框数组插入 MySQL 数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!