2013-11-21 2 views
0

Я пытаюсь удалить определенную строку из базы данных, используя DELETE. Я не знаю, правильно ли я делаю запрос или если что-то другое.Почему мой запрос mySQL не работает?

$dbhandle = mysql_connect($hostname, $username, $password) or die("Unable to connect."); 
$selected = mysql_select_db("fblaWebsite",$dbhandle) or die("Could not select the database"); 

if($_POST['decline']){ 
    $idDelete = $_POST['id']; 
    $deleteRow = mysql_query('DELETE FROM Bookings WHERE id="'$id'"'); 
} 

Также «снижение» представляет собой кнопку отправки, поэтому при нажатии она делает это, а id - скрытый ввод.

+0

1. Вы широко открыты для инъекций SQL. 2. Запустили ли вы запрос из командной строки, чтобы узнать, что происходит? Что вы сделали, чтобы отладить это? –

+0

Пожалуйста, перед тем, как вы напишете ** какой-нибудь ** код взаимодействия с SQL, вы должны прочитать [надлежащее SQL-экранирование] (http://bobby-tables.com/php), чтобы избежать серьезных ошибок SQL-запросов (http: //bobby-tables.com/). Кроме того, 'mysql_query' не следует использовать в новых приложениях. Это устаревший интерфейс, который удаляется из будущих версий PHP. Современная замена, такая как [PDO, не трудно учиться] (http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/). Руководство, подобное [PHP The Right Way] (http://www.phptherightway.com/), поможет вам избежать ошибок, подобных этому. – tadman

+0

Если ваш запрос решен, выберите ответ. – AsG

ответ

3

Это не работает, потому что ваш PHP является недействительным, вызывает синтаксическую ошибку:

$deleteRow = mysql_query('DELETE FROM Bookings WHERE id="' . $id . '"'); 
                  ^-----^---missing 

Вы забыли оператор конкатенации.

+0

и имя переменной также должно быть $ idDelete – AsG

2

Оператор запрос должен быть:

$deleteRow = mysql_query('DELETE FROM Bookings WHERE id="' . $idDelete . '"');

операторы Строка Concat и имя переменной не является правильным

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