让您的一个按钮发送一个 HTTP 参数以指示该字段应该是 0 还是 1。此外,请查看使用PDO类而不是 mysql_* 函数。
这是如何使用 PDO 函数完成的示例:
PHP 代码
<?php
if(!isset($_POST['need'])) {
die('Missing need parameter');
} elseif($_POST['need'] !== '0' && $_POST['need'] !== '1') {
die('Invalid need values');
}
if(!isset($_POST['id']) || !is_numeric($_POST['id'])) {
die('Missing ID');
}
$db = new \PDO('mysql:dbname=crackers_cheese;host=localhost', 'muffins', 'sugarcookies');
$statement = $db->prepare("UPDATE `recruitment` SET `Need` = :need WHERE `ID`= :id");
$statement->bindValue(':need', $_POST['need'], \PDO::PARAM_INT);
$statement->bindValue(':id', $_POST['id'], \PDO::PARAM_INT);
$statement->execute();
header("location: /admin.html");
?>
请注意,由于您在此处使用准备好的语句,因此不需要使用 real_escape_string 或类似的东西对数据进行转义,从而减轻 SQL 注入攻击。
使用参数绑定而不是连接查询来防止 SQL 注入攻击是一种很好的做法。有关更多信息,请参阅:PDO 准备好的语句是否足以防止 SQL 注入?
HTML 表单
<form method='POST' action='update.php'>
<label for='id'>ID:</label>
<input type='number' name='id' id='id'>
<input type='radio' name='need' value='0' id='needfalse'> <label for='needfalse'>Need = 0</label>
<input type='radio' name='need' value='1' id='needtrue'> <label for='needtrue'>Need = 1</label>
<button type='submit'>Submit</button>
这不是设计的最佳形式。我在这里使用了单选按钮,使用实际按钮会稍微复杂一些,但这应该足以让您入门。