Удаление строки mySQL с помощью php

Я пытаюсь удалить строку в таблице mySQL «пользователи». Предполагается, что учетная запись пользователя будет удалена при нажатии связанной кнопки, которая приведет их на эту страницу delete.php. Однако вместо того, чтобы вернуть меня на страницу входа в систему, я остаюсь в системе с учетной записью, которую предполагается удалить. Я пробовал несколько других вариантов, однако он либо не удаляет учетную запись, либо возвращает ошибку в зависимости от того, как я ее написал.

<?php
// Initialize the session
session_start();

require_once "config.php";

 //delete the mySQL row
 if (isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){
    $sql = "DELETE FROM users WHERE id = 'id'";
    mysqli_query($link, $sql);
    header("location: login.php");
    exit;
}
?>

То же самое происходит, когда я пытаюсь это:

<?php
// Initialize the session
session_start();

include "config.php";
$id = $_REQUEST["id"];

//delete the mySQL row
$sql = "DELETE FROM users WHERE id='$id'";
mysqli_query($sql);
header("location: login.php");
exit;
?>

Включите отчеты об ошибках, и вы поймете, почему. Здесь вам не хватает некоторых параметров для некоторых функций.

Qirel 13.02.2019 12:17
mysqli_query($link, $sql); ОК mysqli_query($sql); Не ОК, отсутствует параметр. Так это опечатка
RiggsFolly 13.02.2019 12:23
«это держит меня в системе с учетной записью, которая должна быть удалена» — конечно есть, потому что та инфа хранится в сессии… и она оттуда волшебным образом не пропадает, только потому, что вы что-то удалили из базы. Вам нужно установить $_SESSION["loggedin"] как минимум на false; еще лучше, уничтожьте всю сессию.
04FS 13.02.2019 12:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
3
54
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Пожалуйста, используйте идентификатор ссылки в mysqli_query.

Код должен быть следующим:

<?php
// Initialize the session
session_start();

include "config.php";
$id = $_REQUEST["id"];

//delete the mySQL row
$sql = "DELETE FROM users WHERE id = ".$id;
mysqli_query($link,$sql);
header("location: login.php");
exit;
?>

Вы должны уничтожить сеанс, используя session_destroy() или session_unset() перед перенаправлением.

Спасибо, это сработало! Мне просто нужно было изменить его с $sql = "DELETE FROM users WHERE id = ".$id; to $sql = "УДАЛИТЬ ОТ пользователей, ГДЕ id = ".$_SESSION['id'];

Daniel dos Santos 14.02.2019 13:36

Во втором коде вы забыли вставить $link в mysqli_query($sql)

Другие вопросы по теме