【问题标题】:storing data from radio buttons in MySQL database从 MySQL 数据库中的单选按钮存储数据
【发布时间】:2014-10-15 20:16:28
【问题描述】:

我有一个表单,需要用户输入姓名、姓氏、电话号码、地址等,其中包含是/否问题。对于是/否问题,我使用单选按钮,例如:红色是你最喜欢的颜色吗?是 否。用户必须检查一个。该表单在我的 .php 文件中,我还有另一个与表单连接的 .php 文件,应该将数据存储在 MySQl 的数据库中。我的问题是我是否正确存储了单选按钮,并且我的单选按钮应该是布尔值吗?

我的一个包含单选按钮的表单:

<div class="control-group questions">
<div class="field-control">
<p>This is a Yes/No question</p>
<div class="input-wrapper">
<div class="answer"><input class="btn-checkbox" type="radio" name="groupone" value="yes" /><label>Yes</label></div>
<input class="btn-checkbox" type="radio" name="groupone" value="no" /><label>No</label><br />
</div>
</div>
</div>
<div class="control-group questions">
<div class="field-control">
<p>This is a Yes/No question</p>
<div class="input-wrapper">
<div class="answer"><input class="btn-checkbox" type="radio" name="grouptwo" value="yes" /> <label>Yes</label></div>
<input class="btn-checkbox" type="radio" name="grouptwo" value="no" /><label>No</label><br /
</div>
</div>
</div>

MySQL:

$value = @$_POST ['groupone'];
$sql = "INSERT INTO checkout (groupone) VALUES ('$value')";

if (!mysqli_query($connection, $sql)){
    die('Error: ' . mysqli_connect_error($connection));
}

$value = @$_POST ['grouptwo'];
$sql = "INSERT INTO checkout (grouptwo) VALUES ('$value')";

if (!mysqli_query($connection, $sql)){
    die('Error: ' . mysqli_connect_error($connection));
}

【问题讨论】:

  • 单选按钮并不是真正的布尔值,因为它们可以有多个开或关值。您可以存储它们的实际值,这样会更干净。
  • 非常重要:通读How can I prevent SQL injection in PHP。当前形式的代码极易受到 SQL 注入的篡改。由于您使用的是 MySQLi,现在是时候开始学习使用 prepare()/execute() 来使用准备好的语句来保护您的代码,而不是直接将 $_POST 传递到您的 SQL 字符串中。
  • 谢谢米歇尔·伯科夫斯基。我一定会做的。此时我想确保我正确地存储了单选按钮,并且我在表单中输入的所有内容都进入了数据库。一旦我弄清楚了,我会确保防止 sql 注入。
  • 您希望在数据库中存储什么?你想要“真”和“假”还是想要“是”和“否”?这是你的数据库——你可以做任何你想做的事情。
  • 我希望它是“是”和“否”,但我不知道该怎么做。在 MySQL 数据库中,我写了字段的名称后,例如“groupone”,我不知道要创建什么类型以及应该传递什么长度,因为我不明白 MySQL 如何存储单选按钮的数据

标签: php mysql


【解决方案1】:

如果您想在数据库中存储布尔值,请使用此代码

$value = @($_POST ['groupone'] == 'yes') ? true : false;

【讨论】:

    猜你喜欢
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多