За последние 24 часа нас посетили 22477 программистов и 1143 робота. Сейчас ищут 656 программистов ...

Удаление строки из mysql через php

Тема в разделе "PHP для новичков", создана пользователем Reken, 20 авг 2019.

Метки:
  1. Reken

    Reken Активный пользователь

    С нами с:
    4 июл 2019
    Сообщения:
    198
    Симпатии:
    5
    Подскажите пожалуйста...
    В процессе изучения php появилась надобность удалить строку из БД mysql
    А именно следующим образом: Пользователь видит таблицу выведенную из БД, и допустим решает удалить от туда строчку, содержащую следующую информацию: (Имя, Фамилия, Отчество)
    Удаление реализовано так:
    Ниже таблицы есть окошко с кнопкой, пользователь пишет нужную Фамилию, и нажимает кнопку удалить...

    Я реализовал это так:
    В форме где выводится таблица из БД, через метод POST отправляю в php скрипт, значение переменной delete содержащую фамилию...
    Содержание скрипта:
    Код (Text):
    1. <?php
    2.  
    3. if (isset($_POST['delete'])){
    4. $delete = $_POST['delete'];
    5.  
    6.  
    7.  
    8.     $db_host = "localhost";
    9.     $db_user = "reken";
    10.     $db_password = "password";
    11.     $db_base = 'base';
    12.     $db_table = "work1";
    13.  
    14.     $mysqli = new mysqli($db_host,$db_user,$db_password,$db_base);
    15.  
    16.     // Osibka podkl
    17.     if ($mysqli->connect_error) {
    18.         die('ERROR : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
    19.     }
    20.  
    21. $result = $mysqli->query("DELETE * FROM `work1` WHERE user_name = '".$delete."'");
    22. if ($result == true){
    23.         echo "OK";
    24.     }else
    25. {
    26.         printf("ERROR: %s\n", $mysqli->error);
    27.     }
    28. }
    29. ?>
    После нажатия клавиши удалить, получаю ошибку:
    ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM `work1` WHERE user_name = 'Reken'' at line 1

    Подскажите пожалуйста, я в кавычках допустил ошибку?
     
  2. kazadai90

    kazadai90 Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    103
    Симпатии:
    19
    Код (Text):
    1. "DELETE * FROM `work1` WHERE user_name = '".$delete."'"
    SQL команда DELETE пишется без звездочки, просто DELETE FROM ...
     
  3. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @Reken, привыкайте ориентироваться на идентификатор строки, а не на имя. Обычно это работает так: в таблице с именами на каждой строке делаете ссылку на удаление содержащую идентификатор соответствующий имени, если совсем хорошо, то еще и чекбоксы тоже с идентификатором, для группового удаления
     
    miketomlin нравится это.
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    POST при этом оставляем. Если делать ссылку в прямом смысле, то на страницу подтверждения удаления.
     
  5. Reken

    Reken Активный пользователь

    С нами с:
    4 июл 2019
    Сообщения:
    198
    Симпатии:
    5
    Понял. Всем спасибо.
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.751
    Симпатии:
    1.322
    Адрес:
    Лень
    sql-injection #1