【问题标题】:Saving multiple check boxes into one database field [duplicate]将多个复选框保存到一个数据库字段中[重复]
【发布时间】:2013-04-13 10:10:33
【问题描述】:

我有许多与数据库中的一个字段相关的复选框。检查的值被识别并放入字符串中,但该值未保存到数据库中。表名和字段名都正确。有人知道我做错了什么吗?非常感谢。

*我了解所提供的代码并不安全,但请注意,它只是用于在我将 implode 函数应用到我的实际代码之前对其进行测试。

我的html代码是:

<tr>
    <td>
        <input type="checkbox" name="test[]" value="'apple'">apple<br>
        <input type="checkbox" name="test[]" value="'banana'">banana<br>
        <input type="checkbox" name="test[]" value="'pear'">pear<br>
        <input type="checkbox" name="test[]" value="'grapes'">grapes<br>
        <input type="checkbox" name="test[]" value="'pineapple'">pineapple<br>
        <input type="checkbox" name="test[]" value="'strawberries'">strawberries
    </td>
</tr>

我的php代码是:

print_r($_POST);
session_start();

$p_test = $_POST["test"];
$in = implode(',', $p_test);

include ("dbConnect.php");

$dbQuery = "INSERT into test(testValues) VALUES($in)";
echo $dbQuery;
$result = mysql_query($dbQuery);

$_POST 和 $dbQuery 被打印到屏幕上:

数组 ( [test] => 数组 ( [0] => 'apple' [1] => 'banana' [2] => 'pear' ) [sbp] => N/A [提交] =>提交)

插入测试(testValues) VALUES('apple','banana','pear')

它成功获取了检查的值并将它们放入一个字符串中,但这些值没有进入数据库字段。

【问题讨论】:

标签: php mysql sql html checkbox


【解决方案1】:

如果您尝试这样做:

insert into test(testValues)
values
('apple,banana,pear')

感谢你失败的幸运星。正如 Quentin 所建议的,这是一种不明智的做法。另一方面,我们有这个:

insert into test(testValues)
values
('apple')
, ('banana')
, ('pear')

这将使您的数据更有用。

【讨论】:

    【解决方案2】:

    试试

    $dbQuery = "INSERT into test(testValues) VALUES(". serialize($in).")";
    

    然后当您检索它时,使用unserialize() 再次将其作为数组获取

    【讨论】:

      【解决方案3】:
      INSERT into test(testValues) VALUES('apple','banana','pear')
      

      您的 SQL 正在尝试将三个值插入一列。

      不确定为什么您的 HTML 包含引号,但无论如何都需要对其进行转义。切换到PDOmysql_* 函数已弃用)并使用参数化查询。这样他们就会自动逃脱。

      【讨论】:

        猜你喜欢
        • 2021-12-07
        • 2015-02-22
        • 2018-05-08
        • 1970-01-01
        • 1970-01-01
        • 2013-02-20
        • 1970-01-01
        • 2015-10-25
        • 1970-01-01
        相关资源
        最近更新 更多