使用php将复选框值保存到数据库[关闭]

Posted

技术标签:

【中文标题】使用php将复选框值保存到数据库[关闭]【英文标题】:Save checkbox values to database with php [closed] 【发布时间】:2012-04-01 21:03:06 【问题描述】:

您好,我有一个小问题,我有一个复选框列表,我想将该列表的值保存到我的数据库 (sjaak_db) 中的产品表中。但我现在只是不知道如何用 php 来做。

    <ul id="selectable">

                <input type="checkbox" id="checkbox-G1" value="Knoflook" name="knoflook"><label for="checkbox-G1">Knoflook</label>
                <input type="checkbox" id="checkbox-G2" value="Tabasco" name="tabasco"><label for="checkbox-G2">Tabasco</label>
                <input type="checkbox" id="checkbox-G3" value="Oregano" name="oregano"><label for="checkbox-G3">Oregano</label>

    </ul>

   <input type='submit' name='submit' value='Save' /><label>Save</label>

所以我要做的是在按下保存按钮后立即将列表的值保存在数据库中

【问题讨论】:

【参考方案1】:

这是一个比您可能意识到的更大的话题。我假设您使用 mysql 作为数据库。

这里有一些教程可以帮助您入门:

http://www.freewebmasterhelp.com/tutorials/phpmysql

http://www.tizag.com/mysqlTutorial/

注意:

在编写 SQL 时,必须小心避免 SQL 注入。上面的教程可能不够清楚。在 PHP 中,可以使用 PDO 的预处理语句:

http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/

http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

【讨论】:

请不要使用w3schools作为参考。他们很烂。尤其是在这个主题上,因为他们正在教你如何制作你的应用程序vulnerable to SQL injection。 那个freewebmasterhelp教程也教SQL注入漏洞。 Tigzig,奇迹般地,实际上懒得提及它......但他们将它隐藏在“高级”部分(它不是高级的,它是基本的)并且仍然使用手动转义而不是 PDO 绑定变量。 有没有好的 PDO 初学者教程?令人沮丧的是,其他人教的是不好的做法。 您可以检查这些链接:phpclasses.org/package/…phpro.org/tutorials/Introduction-to-PHP-PDO.htmlnet.tutsplus.com/tutorials/php/…【参考方案2】:

你可以使用 php 的$_POST[] 方法。例如保存下面的代码,如“saveDb.php”,然后将你的html表单的操作方法设置为这个php页面。

if (isset($_POST['Save']))  // 
      if (isset($_POST['checkbox-G1'])) 

      // define var like "$CheckBox1Value" for all checkboxes
      $CheckBox1Value = $_POST['checkbox-G1']; // you can duplicate this row for other checkboxes

       

之后,您可以将该值插入到您的数据库表中。

【讨论】:

【参考方案3】:

您必须使用 php。首先,我们还需要您要存储选项的表(在数据库中)的名称。假设您只有 X 个选项。如果您有可变数量的选项,我会采用其他方法。我假设您的表名为“tablename”,不同的列是“knoflook”、“tabasco”、“oregano”。您想将每个选项存储在不同的 mysql 列中,所以我会这样做:

<?php
$con_mysql = mysql_connect(servername,username,password);   //Connect to mysql
if (!$con_mysql)    //if it cannot connect...
    
    die('Could not connect: ' . mysql_error()); //...displays error
    

$con_db = mysql_select_db(sjaak_db, $con_mysql);    //Connect to database
if (!$con_db)       //if it cannot connect...
    
    die('Could not connect: ' . mysql_error()); //...displays error
    

// Escape and save each value
$Knoflook=mysql_real_escape_string($_POST['knoflook']);
$Tabasco=mysql_real_escape_string($_POST['tabasco']);
$Oregano=mysql_real_escape_string($_POST['oregano']);

// Save them into the database
mysql_query("INSERT INTO tablename (knoflook, tabasco, oregano) VALUES('$Knoflook', '$Tabasco', '$Oregano' ) ") or die(mysql_error());  

// Close the conexion
mysql_close($con_db);
?>

现在,您可能想要对它们做很多事情,例如检查答案是否已设置 (isset ($_POST['knoflook'])) 等等。另外,如果有很多选项,请说出来,我会尝试适应它。

【讨论】:

以上是关于使用php将复选框值保存到数据库[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何将复选框值保存到 MySQL 数据库?

使用php将复选框状态写入/读取文件

在php中将数据从选中的复选框保存到数据库中的一行

将复选框值的多行保存到数据库中

使用 AJAX 将复选框值 1 如果选中,如果不是 0 传递给 PHP

使用 php 将多个复选框值和输入插入单个 sql 数据库