【发布时间】:2014-01-25 12:52:50
【问题描述】:
当新管理员和用户被添加到我正在制作的系统时,我正在尝试使用单选按钮设置他们的权限。问题是,无论我选择什么,该字段的值最终都会在数据库中显示为“O”。谁能解释我哪里出错了?任何帮助将不胜感激!谢谢!
(连接工作正常,所以我不会添加它) 这是用于数据库更新的 PHP:
$first_name = mysql_prep($_POST["first_name"]);
$last_name = mysql_prep($_POST["last_name"]);
$username = mysql_prep($_POST["username"]);
$hashed_password = password_encrypt($_POST["password"]);
$privileges = mysql_prep($_POST["privileges"]);
$query = "INSERT INTO logins ( ";
$query .= "first_name, last_name, username, privileges, hashed_password";
$query .= ") VALUES ( ";
$query .= "'{$first_name}', '{$last_name}', '{$username}', '{$privileges}', '{$hashed_password}'";
$query .= ")";
$result = mysqli_query($connection, $query);
这里是带有单选按钮的 html 部分:
<p>Privileges:
<div>
User: <input type="radio" name="privileges" value="user" />
<br />
Admin: <input type="radio" name="privileges" value="admin" />
</div>
</p>
【问题讨论】:
-
另外,您可能需要使用
multi_query(),即:$result = mysqli_multi_query($connection, $query); -
哦等等,
mysql_prep是从哪里来的,是外部类/函数吗? -
尝试运行 print_r($_POST);在处理脚本的开头查看值是否正确通过。这将有助于查明错误。另外,您的 SQL 字段的数据类型是什么?
-
我“认为”您可能在
$query .= "'{$first_name}', '{$last_name}', '{$username}', '{$privileges}', '{$hashed_password}'"; $query .= ")";中有一组额外的双引号,但我不能 100% 确定。 -
你可以试试这个方法,看看它是否有效?
$query = "INSERT INTO logins (first_name, last_name, username, privileges, hashed_password) VALUES ('{$first_name}', '{$last_name}', '{$username}', '{$privileges}', '{$hashed_password}')";@gv0029