首頁  >  文章  >  後端開發  >  如何在 PHP 中將多個複選框和文字方塊數組插入 MySQL 資料庫?

如何在 PHP 中將多個複選框和文字方塊數組插入 MySQL 資料庫?

Susan Sarandon
Susan Sarandon原創
2024-10-27 20:37:30481瀏覽

How to Insert Multiple Checkbox and Textbox Arrays into a MySQL Database in PHP?

在PHP 中將多個複選框和文字方塊陣列插入MySQL 資料庫

插入多個複選框數組

如果複選框值不是插入資料庫後,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>

其他注意事項

  • 從資料庫中檢索價格而不是將其硬編碼在HTML 以防止篡改。
  • 避免混合 MySQLi 和 mysql API 進行資料庫連線和查詢執行。

以上是如何在 PHP 中將多個複選框和文字方塊數組插入 MySQL 資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn