Deleting MySQL Table record

MySQLi — Delete Query

If you want to delete a record from any MySQL table, then you can use the SQL command DELETE FROM. You can use this command at the mysql> prompt as well as in any script like PHP.

Syntax

The following code block has a generic SQL syntax of the DELETE command to delete data from a MySQL table.

DELETE FROM table_name [WHERE Clause]
  • If the WHERE clause is not specified, then all the records will be deleted from the given MySQL table.
  • You can specify any condition using the WHERE clause.
  • You can delete records in a single table at a time.

The WHERE clause is very useful when you want to delete selected rows in a table.

Deleting Data from the Command Prompt

This will use the SQL DELETE command with the WHERE clause to delete selected data into the MySQL table – tutorials_tbl.

Example

The following example will delete a record from the tutorial_tbl whose tutorial_id is 3.

root@host# mysql -u root -p password; Enter password:******* mysql> use TUTORIALS; Database changed mysql> DELETE FROM tutorials_tbl WHERE tutorial_id=3; Query OK, 1 row affected (0.23 sec) mysql>

Deleting Data Using a PHP Script

PHP uses mysqli query() or mysql_query() function to delete records in a MySQL table. This function takes two parameters and returns TRUE on success or FALSE on failure.

Читайте также:  Вызвать метод объекта python

Syntax

Required — SQL query to delete records in a MySQL table.

Optional — Either the constant MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT depending on the desired behavior. By default, MYSQLI_STORE_RESULT is used.

Example

Try the following example to delete a record in a table −

Copy and paste the following example as mysql_example.php −

    ", $mysqli→connect_error); exit(); > printf('Connected successfully.
'); if ($mysqli→query('DELETE FROM tutorials_tbl where tutorial_id = 4')) < printf("Table tutorials_tbl record deleted successfully.
"); > if ($mysqli→errno) < printf("Could not delete record from table: %s
", $mysqli→error); > $sql = "SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl"; $result = $mysqli→query($sql); if ($result→num_rows > 0) < while($row = $result→fetch_assoc()) < printf("Id: %s, Title: %s, Author: %s, Date: %d
", $row["tutorial_id"], $row["tutorial_title"], $row["tutorial_author"], $row["submission_date"]); > > else < printf('No record found.
'); > mysqli_free_result($result); $mysqli→close(); ?>

Output

Access the mysql_example.php deployed on apache web server and verify the output. Here we’ve entered multiple records in the table before running the select script.

Connected successfully. Table tutorials_tbl record deleted successfully. Id: 1, Title: MySQL Tutorial, Author: Mahesh, Date: 2021 Id: 2, Title: HTML Tutorial, Author: Mahesh, Date: 2021 Id: 3, Title: PHP Tutorial, Author: Mahesh, Date: 2021 Id: 5, Title: Apache Tutorial, Author: Suresh, Date: 2021

Источник

Php примеры запроса delete

Для удаления данных применяется sql-команда DELETE :

DELETE FROM Таблица WHERE столбец = значение

Для удаления данных возьмем использованную в прошлых темах таблицу Users со следующим определением:

CREATE TABLE Users (id INTEGER AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30), age INTEGER)

Объектно-ориентированный стиль

Вначале определим для вывода всех объектов из БД скрипт index.php :

     

Список пользователей

connect_error)< die("Ошибка: " . $conn->connect_error); > $sql = "SELECT * FROM Users"; if($result = $conn->query($sql))< echo ""; foreach($result as $row)< echo ""; echo ""; echo ""; echo ""; echo ""; > echo "
ИмяВозраст
" . $row["name"] . "" . $row["age"] . "
"; $result->free(); > else< echo "Ошибка: " . $conn->error; > $conn->close(); ?>

В таблицы для каждой строки определена форма, которая посылает данные в POST-запросе скрипту delete.php . Чтобы передать в delete.php идентификатор удаляемого объекта, на форме определено скрытое поле для хранения id объекта.

Обратите внимание, что в данном случае применяется не ссылка для удаления типа

которая оправляет данные в GET-запросе, а именно форма, которая отправляет данные в POST-запросе. Почему? Подобные GET-запросы потенциально небезопасны. Допустим, нам пришло электронное письмо, в которое была внедрена картинка посредством тега:

В итоге при открытии письма 1-я запись в таблице может быть удалена. Уязвимость касается не только писем, но может проявляться и в других местах, но смысл один — GET-запрос к скрипту, который удаляет данные, несет потенциальную уязвимость.

Теперь определим сам скрипт delete.php , который будет выполнять удаление:

connect_error)< die("Ошибка: " . $conn->connect_error); > $userid = $conn->real_escape_string($_POST["id"]); $sql = "DELETE FROM Users WHERE "; if($conn->query($sql)) < header("Location: index.php"); >else< echo "Ошибка: " . $conn->error; > $conn->close(); > ?>

В данном случае скрипт получает через POST-запрос значение id и по этому идентификатору выполняет удаление. После чего происходит переадресация на скрипт index.php .

Удаление из MySQL в PHP PDO

Процедурный стиль

     

Список пользователей

$sql = "SELECT * FROM Users"; if($result = mysqli_query($conn, $sql))< echo ""; foreach($result as $row)< echo ""; echo ""; echo ""; echo ""; echo ""; > echo "
ИмяВозраст
" . $row["name"] . "" . $row["age"] . "
"; mysqli_free_result($result); > else < echo "Ошибка: " . mysqli_error($conn); >mysqli_close($conn); ?>
 $userid = mysqli_real_escape_string($conn, $_POST["id"]); $sql = "DELETE FROM Users WHERE "; if(mysqli_query($conn, $sql)) < header("Location: index.php"); >else < echo "Ошибка: " . mysqli_error($conn); >mysqli_close($conn); > ?>

Источник

Удаление записей в MySQL (DELETE)

В этом уроке вы узнаете, как с помощью PHP сортировать и отображать данные из таблицы MySQL в порядке возрастания или убывания.

Удаление данных таблицы БД MySQL

Подобно тому, как вы вставляете записи в таблицу с помощью оператора INSERT , вы также можете удалять записи из таблицы с помощью оператора SQL DELETE . Обычно он используется вместе с условием WHERE для удаления только тех записей, которые соответствуют определенным критериям или условию.

Базовый синтаксис оператора DELETE может быть задан следующим образом:

Давайте сделаем SQL-запрос, используя оператор DELETE и условие WHERE , после чего мы выполним этот запрос, передав его функции mysqli_query() для удаления записей таблицы. Воспользуемся таблицей persons базы данных demo:

Выбор данных из таблиц базы данных MySQL

Код PHP в следующем примере удалит записи тех людей из таблицы persons, у которых first_name равно John:

Пример

 // запрос для удаления записи $sql = "DELETE FROM persons WHERE first_name='John'"; if (mysqli_query($conn, $sql)) < echo "Запись успешно удалена"; >else < echo "Ошибка при удалении записи: " . mysqli_error($conn); >mysqli_close($conn); ?>
 // запрос для удаления записи $sql = "DELETE FROM persons WHERE first_name='John'"; if ($conn->query($sql) === TRUE) < echo "Запись успешно удалена"; >else < echo "Ошибка при удалении записи: " . $conn->error; > $conn->close(); ?>
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // sql для удаления записи $sql = "DELETE FROM persons WHERE first_name='John'"; // используйте exec(), потому что результаты не возвращаются $conn->exec($sql); echo "Запись успешно удалена"; > catch(PDOException $e) < echo $sql . "
" . $e->getMessage(); > $conn = null; ?>

После удаления таблица persons будет выглядеть так:

Выбор данных из таблиц базы данных MySQL

Примечание: Обратите внимание на предложение WHERE в синтаксисе DELETE: предложение WHERE указывает, какую запись или записи следует удалить. Если вы опустите предложение WHERE, все записи будут удалены!

Источник

HTTP-протокол PUT и DELETE и их использование в PHP

Говорят, PUT и DELETE . Я только слышал о POST и GET и никогда не видел что-то вроде $_PUT или $_DELETE проходящих в любом PHP-коде, который я когда-либо просматривал.

Мой вопрос

Каковы эти методы (PUT) и (DELETE), и если можно использовать их в PHP, как бы я это делал.

Примечание. Я знаю, что это не проблема, но я всегда получаю возможность обучения, если увижу ее, и очень хотел бы научиться использовать эти методы на PHP, если это возможно.

Каковы эти методы (PUT) и (DELETE) для …

Есть много слов, которые нужно потратить, чтобы объяснить это, и я недостаточно квалифицирован, чтобы сделать это, но, как уже было опубликовано, краткое описание того, что описывает спецификация HTTP .

Протокол в основном говорит об этом:

  • используйте GET, когда вам нужно получить доступ к ресурсу и получить данные , и вам не нужно изменять или изменять состояние этих данных.
  • используйте POST, когда вам нужно отправить некоторые данные на сервер. Ex. из формы, чтобы сохранить эти данные где-то.
  • используйте HEAD, когда вам нужно получить доступ к ресурсу и получить только заголовки из ответа , без каких-либо данных ресурсов.
  • используйте PUT, когда вам нужно заменить состояние некоторых данных, уже существующих в этой системе.
  • используйте DELETE, когда вам нужно удалить ресурс (относительно вашего URI, который вы отправили) в этой системе.
  • используйте OPTIONS, когда вам нужно получить параметры связи с ресурсом, поэтому для проверки разрешенных методов для этого ресурса . Ex. мы используем его для правил запроса и разрешений CORS.
  • Вы можете прочитать о двух оставшихся методах этого документа, извините, что я никогда не использовал его.

В основном протокол – это набор правил, которые вы должны использовать из своего приложения, чтобы придерживаться его.

… и если можно использовать их в PHP, как бы я это сделал.

Из вашего приложения вы должны получить, какой метод использовался с $_SERVER[‘REQUEST_METHOD’] и реагировать соответственно.

Некоторые приложения, работающие с браузерами, которые не поддерживают методы PUT или DELETE, используют этот трюк, скрытое поле из html, со значением, например:

Таким образом, из приложения вы теперь можете распознать это как запрос DELETE.

Следуйте простому описанию того, как PHP обрабатывает параметры:

Когда вы (ваш браузер, ваш клиент) запрашиваете ресурс на HTTP-сервере, вы должны использовать один из методов, который принимает протокол (HTTP). Поэтому вам нужно пройти:

  • МЕТОД
  • Ури ресурса
  • Заголовки запроса, такие как User-Agent, Host, Content-Length и т. Д.
  • (Необязательный орган запроса)

поэтому запрос должен выглядеть так:

GET /something/index.php?maybe=aparameter 

Теперь, внутри вашего приложения, PHP принимает параметры из этого запроса GET и вставляет их в массив суперглобального (доступного для всего вашего приложения). Таким образом, вы можете получить доступ к $_GET[‘maybe’] который возвращает «aparameter».

В случае запроса POST вы запрашиваете ресурс на HTTP-сервере аналогичным образом, но с важным отличием. Вы предоставляете данные внутри тела запроса:

POST /something/index.php (body) maybe=aparameter 

Теперь, внутри вашего приложения, PHP из этого запроса POST принимает параметры и вставляет их в массив суперглобального (доступного всего вашего приложения). Таким образом, вы можете получить доступ к $_POST[‘maybe’] который возвращает «aparameter».

Также обратите внимание на код состояния ответа (например, если вы получили запрос PUT, и вы обновили этот ресурс без ошибок, вы должны вернуть статус 204 – нет содержимого) .

Способ использования данных PUT из PHP:

$method = $_SERVER['REQUEST_METHOD']; if ('PUT' === $method) < parse_str(file_get_contents('php://input'), $_PUT); var_dump($_PUT); //$_PUT contains put fields > 

В спецификации HTTP описаны .

В двух словах, и несколько упрощая, PUT предназначен для загрузки файла в URL-адрес, а DELETE – для удаления файла из URL-адреса.

никогда не видел что-то вроде $_PUT или $_DELETE проходящих в любом PHP-коде, который я когда-либо просматривал

$_POST и $_GET ужасно названы суперглобалами. $_POST – это данные, обработанные из тела запроса. $_GET предназначен для анализа данных из URL. Нет ничего, что строго связывает данные в любом из этих мест (особенно URL) с конкретным методом запроса.

Запросы DELETE заботятся только о пути URL-адреса, поэтому нет данных для синтаксического анализа.

Запросы PUT обычно касаются всего тела запроса (а не его синтаксического анализа), к которому вы будете обращаться с file_get_contents(‘php://input’); ,

и если можно использовать их в PHP, как бы я это сделал.

Вам нужно будет сопоставить URL-адрес с PHP-скриптом (например, с перезаписи URL-адресов ), протестировать метод запроса , определить, на каком URL вы фактически имеете дело , а затем написать код для выполнения соответствующих действий.

Наиболее подходящим местом для использования этих методов (PUT и DELETE) является REST API. Если мы используем методы http для определения режима работы, например, вы хотите получить любые ресурсы, то вы можете использовать следующее:

GET http://api.example.com/employee/

для добавления нового элемента:

POST http://api.example.com/employee/ 

для обновления или редактирования:

PUT http://api.example.com/employee/ 

для удаления существующего ресурса:

DELETE http://api.example.com/employee/1 

Теперь на стороне PHP вам просто нужно прочитать, какой метод HTTP используется, чтобы вы могли совершить действие в соответствии с этим.

есть много доступных библиотек, которые могут сделать это для вас. это очень хороший пример: http://phphttpclient.com/

PHP $_GET и $_POST плохо названы. $_GET используется для доступа к значениям параметров строки запроса, а $_POST позволяет получить доступ к телу запроса.

Использование параметров строки запроса не ограничено запросами GET, а другие запросы, кроме POST, могут иметь тело запроса.

Если вы хотите узнать глагол, используемый для запроса страницы, используйте $_SERVER[‘REQUEST_METHOD’] .

Источник

Оцените статью