2014-09-05 3 views
-2

У вас возникла ошибка в синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MySQL для корректного синтаксиса использовать вблизи 'like= 1 where ID =57' в строке 1У вас есть ошибка в синтаксисе SQL; проверить соответствующее руководство?

Это код с обновлением, все имена атрибутов и таблиц проверяются.

<?php 
    include("../connect.php"); 
    if (session_id() == "") 
    session_start(); 
    $id = $_GET['id']; 
    $update = "Update komentari set like = 1 where ID=$id"; 

     if (mysql_query($update)) { 

      echo 'success'; 
     } 
     else { 
     echo mysql_error(); 


     } 

    ?> 
+5

'like' является [зарезервированным словом MySQL] (http://dev.mysql.com/doc/refman/5.6/en/reserved-words.html) .... если вам нужно использовать его как имя столбца или таблицы, то вы должны заключить его в обратные ссылки (') –

+0

LIKE - зарезервированное слово. Используйте Backticks, чтобы избежать – StuartLC

+0

возможного дубликата [Синтаксическая ошибка из-за использования зарезервированного слова в качестве имени таблицы или столбца в MySQL] (http://stackoverflow.com/questions/23446377/syntax-error-due-to-using-a -reserved-word-as-a-table-or-column-name-in-mysql) –

ответ

3

like - зарезервированное слово. Вы не можете использовать его «raw» в запросе. Попробуйте вместо этого:

UPDATE komentari SET `like` = 1 WHERE ID = $id 
        ^----^---note the backticks 

Полный список здесь: http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

+0

Tnx, теперь он работает :-) –

3

like является SQL зарезервированное слово. Вам нужно будет либо использовать другое имя столбца, либо указать его с обратными выводами как `like` всякий раз, когда вы ссылаетесь на него.

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

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