2014-10-10 3 views
-1

Я пытаюсь обновить строку в базе данных, но я не могу этого сделать. Вот мой SQL:Не удается обновить строку в базе данных

$sql = "UPDATE `voting_nomination_counter` 
SET `quantity`=quantity+1 
WHERE `nid` = '$nid' 
AND nominee = '$nominee'"; 

Я подозреваю, что проблема здесь - AND nominee = '$nominee'";, потому что когда я удалить это из запроса все работает и обновляется нормально. Помоги пожалуйста.

+2

Если вы не получаете ошибку sql (при условии, что вы показали ошибки), выведите строку запроса sql и посмотрите, являются ли переменные ожидаемыми. – Fluffeh

+0

Проверьте, есть ли у вас какое-либо значение в $ nominee –

ответ

0

Я решить эту проблему, если я хочу, чтобы обновить WHERE string = string мне просто нужно использовать это заявление UPDATE table SET field = REPLACE(field, 'string', 'anothervalue') WHERE field LIKE '%string%';, спасибо ребята)

0

Попробуйте это:

$sql = "UPDATE voting_nomination_counter SET quantity=quantity+1 WHERE nid = '$nid' AND nominee = '$nominee'"; 
+1

. Есть ли разница здесь, кроме того, что вы удалили обратные ссылки в исходном SQL, которые отлично подходят для использования? – Fluffeh

0

@excluded_once Похоже, вы были в состоянии! решить вашу проблему. Поэтому в будущем никогда не используйте имена переменных непосредственно в строке SQL. Всегда используйте db_query или db_select, а затем всегда привязывайте переменные к SQL, это поможет вам предотвратить инъекции SQL и другие атаки.

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