我有一个PHP脚本,该脚本应该将来自select函数的数据保存到数据库中。我用switch case功能完成了整个过程。数据实际上应该保存,但是由于不可理解的原因,这不会发生。我的脚本如下:
if(isset($_POST['acc_type'])){
$select = $_POST['acc_type'];
switch ($select) {
case '2':
$sql = "INSERT INTO userdata (accounttype) VALUES (2)";
break;
case '3':
$sql = "INSERT INTO userdata (accounttype) VALUES (3)";
break;
default:
$sql = "INSERT INTO userdata (accounttype) VALUES (1)";
echo "nothing";
break;
}
}
我已经测试了它是否归因于输入(通过设置echo
)。但这已经完成了。因此,这一定是由于传输到数据库造成的。
应该有3个对我的登录很重要的选择。数据应另存为1、2或3(取决于指定的内容)。
答案 0 :(得分:1)
首先,您不需要这些重复的内容。
$select = ($_POST['acc_type'] == 2 || $_POST['acc_type'] == 3) ? $_POST['acc_type'] : 1;
$sql = sprintf("INSERT INTO userdata (accounttype) VALUES (%d)", $select);
一个更好的解决方案是适当地准备语句,但是我不知道您打算如何执行查询(您未提供任何代码)。仅此而已,您实际上没有在数据库中插入任何内容,只需将查询设置为变量。