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