2016-02-13 2 views
-2

Я получаю следующее сообщение об ошибке:PHP ошибка MySQL удаления строк

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 'order WHERE id = '49'' at line 1

Я не понимаю, что является причиной этого. Я проверил любые синтаксические ошибки, рассмотрел документацию mysqli и просмотрел похожие сообщения здесь, в Stack Overflow, без везения. Какого черта я делаю неправильно?

Это код, который я использую:

<?php 

    if (isset($_GET['order_id']) && $_GET['order_id'] != "") 
    { 
      $delete_id = $_GET['order_id']; 
      echo "<p>$order_id</p>"; 

      $conn = new mysqli($server, $user, $password, $database); 
      $sql = "DELETE FROM order WHERE id = '" . $delete_id . "';"; 
      $result = mysqli_query($conn, $sql) or die(mysqli_error($conn)); 
      mysqli_close($conn); 
    } 
?> 
+0

@Marvin Запуск без '' 'вызывает ту же ошибку. Тип данных для 'id' в настоящее время установлен на int (11). –

ответ

1

order - ключевое слово MySQL. Неплохо называть свою таблицу таким, но если вам нужно, вы должны избегать ее с обратными шагами (`).

Ваш SQL-запрос должен быть:

$sql = "DELETE FROM `order` WHERE id = '" . $delete_id . "';"; 

И вы также должны использовать подготовленные заявления, поскольку в противном случае ваш код уязвим для инъекций SQL.

+0

upvote для напоминания о зарезервированном ключе 'order' – RomanPerekhrest

-1

Try без единой кавычки (') вокруг $delete_id и использовать prepared statements.

+0

upvote для подготовленных заявлений. – Seblor

Смежные вопросы