Все, что я пытаюсь сделать, это создать простую текстовую форму и удалить запись из базы данных sql. Он возвращает, что запись удален, но на самом деле никогда не удаляет запись.
переменныеremove.php:
изображение формы html:
remove.php:
remove.php:
require('variablesremove.php');
$user = "#";
$password = "#";
$host = "localhost";
$database= "#";
$connection= mysqli_connect ($host, $user, $password);
if (!$connection) {
die ('Could not connect:' . mysql_error());
}
mysqli_select_db($database, $connection);
$deleterow = "DELETE FROM licenses WHERE serialNumber='$serialNumber'";
if ($deleterow !== FALSE) {
echo("The row has been deleted.");
} else {
echo("The row has not been deleted.");
}
вы не запускаете запрос или не определяете $serialNumber
Я исправил $ id $ deleterow = "УДАЛИТЬ ИЗ лицензий WHERE serialNumber = '$ id'";
Закрепите держатель ссылки серийного номера на $ id и выполните оператор запроса на основе приведенного ниже примера, и вы должны быть готовы к работе! @DouglasLittlefield






Вам нужно использовать mysqli_query() для выполнения вашей команды удаления.
$deleteRow = "DELETE FROM licenses WHERE serialNumber='$id'";
if (mysqli_query($connection, $deleteRow)) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . mysqli_error($conn);
}
mysqli_close($conn);
mysqli_query ($ deleterow) = "УДАЛИТЬ ИЗ лицензий, ГДЕ serialNumber = '$ serialNumber'"; ?
Обновлен пример выше
Вы можете использовать это в качестве примера -
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// sql to delete a record
$sql = "DELETE FROM MyGuests WHERE id=3";
if (mysqli_query($conn, $sql)) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
Ошибка при удалении записи: Неизвестный столбец '00000000f5f409ce' в 'where clause' $ sql = "УДАЛИТЬ ИЗ лицензий WHERE serialNumber = $ id";
Интегрируйте вашу БД
...
mysqli_select_db($database, $connection);
$deleterow = "DELETE FROM licenses WHERE serialNumber = '$serialNumber'";
if (mysqli_query($conn, $deleterow)) {
echo("The row has been deleted.");
} else {
echo("The row has not been deleted.");
}
...
Напишите, пожалуйста, правильный ответ. Простое добавление кода здесь в лучшем случае мало поможет или может быть неправильно понято и вредно в худшем. Спасибо за внимание.
Если вы проверите, что мой ответ был единственным, который не был скопирован, все вышеперечисленное помещало общие ответы и редактировало их, фактически я был первым, кто поместил переменную $ deleterow в правильную функцию, в то время как все остальные ответы являются общими. И еще одна деталь: принятый ответ скопировал переменную $ deleterow в правильную функцию после того, как я опубликую решение.
Справедливо. Если вы хотите, чтобы вас проголосовали за, вам придется приложить дополнительные усилия, чтобы опубликовать хороший ответ, независимо от того, что другие копируют вас. Просто пытаюсь помочь приятелю. Проверьте это обсуждение по этому вопросу: meta.stackexchange.com/questions/17204/… И чтобы показать, что я понял вашу точку зрения, я также проголосовал за ваш ответ.
Вы отличный человек, я очень благодарен вам за ваш голос, и я учту все ваши советы, потому что вы однозначно цените хорошее функционирование сайта.
Вы также можете подумать о том, чтобы проголосовать за некоторые из моих ответов по дороге;)
Я дал два сегодня, и я дам больше в течение недели, если вы тоже сможете это сделать, я буду рад. Обнимаю!
Я просмотрю твои посты. Проголосую за хорошие ответы и вопросы. Заботиться :)
Фактически вы должны использовать параметризованный запрос для запуска этого оператора.
В существующей форме он подвержен атакам с использованием SQL-инъекций.
if ($deleterow = $mysqli->prepare("DELETE FROM licenses WHERE serialNumber = ?") {
$deleterow->bind_param("s", $id);
if ($deleterow->execute()) {
printf("The row has been deleted.\n");
}else{
echo "Error deleting record: " . mysqli_error($conn);
}
} else {
printf("Error preparing the query: %s\n",$deleterow);
}
$mysqli->close();
Спасибо всем за помощь!
Вот рабочее решение!
<?php
require('variablesremove.php');
$user = "#";
$password = "#";
$host = "#";
$database = "#";
$connection= mysqli_connect ($host, $user, $password);
if (!$connection)
{
die ('Could not connect:' . mysql_error());
}
mysqli_select_db($connection, "$database") or die ("Couldn't select the database.");
$deleteRow = "DELETE FROM licenses WHERE serialNumber='$id'";
if (mysqli_query($connection, $deleteRow)) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . mysqli_error($connection);
}
mysqli_close($connection);
?>
Переменная, содержащая серийный номер, -
$id, а не$serialNumber. Проверьте строку удаления sql.