Удаление строки базы данных с MySQL - получить ошибку? - PullRequest
1 голос
/ 19 апреля 2010

Вот код:

mysql_query("DELETE " . $_GET['id'] . " FROM forum_favorites WHERE thread_id='" . $_GET['id'] . "' AND user='" . $userinfo['username'] . "'") or die(mysql_error());

И сообщение об ошибке:

У вас ошибка в синтаксисе SQL; проверьте руководство, которое соответствует ваша версия сервера MySQL для правильный синтаксис для использования около '77 ОТ forum_favor WHERE thread_id = '77 ' И пользователь = 'пользователь' 'в строке 1

Кто-нибудь знает, что здесь? Я застрял здесь на несколько часов, и я просто не могу понять, что, черт возьми, не так? Имя базы данных и имена столбцов верны.

Ответы [ 2 ]

4 голосов
/ 19 апреля 2010

Удалить " . $_GET['id'] . " между DELETE и FROM:

DELETE FROM forum_favorites etc...

См. Документацию для DELETE для получения дополнительной информации.

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

1 голос
/ 19 апреля 2010
$thread_id=intval($_GET['id']);
$username=mysql_real_escpe_string($userinfo['username']);

$sql="DELETE FROM forum_favorites WHERE thread_id=$thread_id AND user='$username'";
mysql_query($sql) or trigger_error(mysql_error());
...