2015-09-17 4 views
0

Я пытаюсь удалить записи из базы данных mysql с помощью php-файла и по какой-то причине он не работает. Соединение (в «connect.php») работает, поскольку я использую тот же файл для своих операторов SELECT и тех, которые работают. У меня возникают проблемы с их удалением. Любые идеи, что я делаю неправильно? Спасибо заранее!Невозможно удалить из базы данных с помощью php

<?php 
include "include/connect.php"; 

if($link === false){ 
    die("ERROR: Could not connect. " . mysql_connect_error()); 
} 

$word = (isset($_GET['email']) ? $_GET['email'] : null); 

$sql = "DELETE * from tbl_sbs WHERE eml='" . word . "'"; 
$result = mysql_query($sql); 
?> 
+2

yowza !!! удалите «*», а затем удалите вопрос. 'или die (mysql_error())' to 'mysql_query()' сигнализировали бы синтаксическую ошибку –

+0

Я чувствовал себя как автоответчик, но это больше не будет оценено * sigh – user5173426

+0

Плюс, сообщение об ошибках привело бы к неопределенному постоянному объявлению слова ; ** ЕСЛИ ** это не опечатка. –

ответ

3

Вы не используйте * или столбца имя DELETE заявления, если в WHERE пункте для фильтрования цели так же, как в SELECT заявлении. Это должно быть просто

$sql = "DELETE from tbl_sbs"; 

DELETE Общего синтаксис

DELETE FROM TABLE_NAME WHERE COLUMN_NAME <comparison_operator> SOME_FILTER_CONDITION 

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

$sql = "DELETE FROM tbl_sbs WHERE eml='" . $word . "'"; 

Сообщение об ошибках бросило бы вам неопределенное постоянное слово уведомление; IF Опечатка не была '" . word . "'.

* и проверив на наличие ошибок, бросил бы вам следующее:

У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом с «*

Ссылки:

+0

Я отредактировал свой код, чтобы включить условие в инструкцию delete. Требуется ли «*» в этом случае? –

+0

Нет, просто добавьте 'WHERE' @IrinaAvram –

+0

@IrinaAvram, NO. НИКОГДА. См. Edit в ответе снова. – Rahul

1

и вы должен использовать $ перед именем переменной (слово)

$sql = "DELETE from tbl_sbs WHERE eml='" . $word . "'"; 
+1

И вы должны проверить * полный * синтаксис инструкции 'DELETE'. –

+0

OP сказал, что это опечатка, но вы ответили на то, что они опубликовали изначально. –

+0

* "И вы должны использовать $ перед именем переменной (word)" * - В противном случае он рассматривается как константа. –

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