Я пытаюсь создать страницу, которая позволит пользователю ввести номер сотрудника через форму, и когда они нажмут кнопку «удалить», она удалит соответствующую запись. База данных называется «Crosshill», таблица называется «Сотрудники», а поле, которое я хочу использовать, - «employeeid».Используйте простую форму и PHP для удаления записи mySQL.
Кажется, что подключается нормально к БД, но код ниже не работает. Когда вы нажмете кнопку «Удалить», она возвращает ошибку:
Не удалось удалить данные: У вас возникла ошибка в синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MySQL для корректного синтаксиса использовать вблизи «WHERE EmployeeID =» в строке 1 BLOCKQUOTE
<html>
<head>
<title>Delete an Employee</title>
</head>
<body>
<h3>Enter the Employee Number below to delete a record</h3>
<?php
if(isset($_POST['delete']))
{
$dbhost = '####';
$dbuser = '####';
$dbpass = '####';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn)
{
die('Could not connect: ' . mysql_error());
}
$employeeid = $_POST['employeeid'];
$sql = "DELETE Employees ".
"WHERE employeeid = $employeeid" ;
mysql_select_db('Crosshill');
$retval = mysql_query($sql, $conn);
if(! $retval)
{
die('Could not delete data: ' . mysql_error());
}
echo "Deleted data successfully\n";
mysql_close($conn);
}
else
{
?>
<form method="post" action="<?php $_PHP_SELF ?>">
<table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="100">Employee ID</td>
<td><input name="employeeid" type="number" id="employeeid"></td>
</tr>
<tr>
<td width="100"> </td>
<td> </td>
</tr>
<tr>
<td width="100"> </td>
<td>
<input name="delete" type="submit" id="delete" value="Delete">
</td>
</tr>
</table>
</form>
<?php
}
?>
</html>
огромная дыра в безопасности в этот код –
Пропущенный ОТ слово. Написание '$ employeeid = (int) $ _ POST ['employeeid'];' исправит это отверстие безопасности. Но я надеюсь, что это только тестовая цель ... –
Не могли бы вы уточнить? Это только для тестового проекта, но я все еще учился и хотел бы знать, как предотвратить это. – WJB