2有关使用PDO(PHP)在数据库中保存来自多个复选框的数据的问题(我的表单中包含很少数据)。我只是展示代码的相关部分,以使其对每个人都更简单。 A)我写的代码工作正常(仍然保存所有数据),但它仍然给我一个失败的消息,你可以在下面看到。为什么,或者我能做得更好?保存数据库中多个复选框中的数据
B)它将选中的复选框保存为数据库中的数组。后来,我想通过从数据库中获取数据将数据更改回原始格式来更改数据 - 如果将其保存为数组,它会产生问题吗?如果是的话,你会建议如何做得更好。
警告:破灭():上线通过参数无效......对于
$p2 = implode(',',$product_2);
$p3 = implode(',',$product_3);
$p1 = implode(',',$product_1); which I defined first seems to be fine
<?php
if(isset($_POST['send']))
{
require("php/tconnect.php");
$id = $_POST['id'];
$name = $_POST['name'];
$date = $_POST['date'];
$p1 = implode(',',$product_1);
$p2 = implode(',',$product_2);
$p3 = implode(',',$product_3);
$sql = "INSERT INTO database (id, name, date) VALUES (:id, :name, :date, '$p1', '$p2', '$p3')";
$stmt = $dbh->prepare($sql);
$stmt->bindValue(':id', $id);
$stmt->bindValue(':name', $name);
$stmt->bindValue(':date', $date);
$stmt->execute();
echo "Datas saved";
}
?>
HTML
<input type="checkbox" name="product_1[]" value="apple" id="product_1_apple">
Apple
</label>
<label class="checkbox-inline">
<input type="checkbox" name="product_1[]" value="Banana" id="product_1_banana">
Banana
</label>
,下表类似于
<input type="checkbox" name="product_2[]" value="water" id="product_2_water">
Water
</label>
<label class="checkbox-inline" >
<input type="checkbox" name="product_2[]" value="juice" id="product_2_juice">
Juice
</label>
虽然警告不是错误,几乎总是意味着有东西是不是就在你的代码,可能你的某个产品没有被保存。你得到警告(或警告)的行中的代码是什么? –
谢谢你,这是正确的,它的这些行:$ p2 = implode(',',$ product_2);和 $ p3 = implode(',',$ product_3); - 我第一次使用$ p1 = implode(',',$ product_1);我没有收到警告。 – Jessy642