2011-08-31 5 views
0

У меня есть инструкция по обновлению, которая по какой-то причине, похоже, не сработает.Проблема с MySQL UPDATE

else if (isset($_POST['save'])) { 
    $query = "UPDATE assignments 
       SET expdate = '$expdate', 
        dispdate = '$dispdate', 
        duedate = '$duedate', 
        name = '$name', 
        cat1 = '$cat1', 
        cat2 = '$cat2', 
        cat3 = '$cat3', 
        schoolid = '$schoolid', 
        classid = '$classid', 
        public = '$public', 
        tags = '$tags', 
        description = '$description', 
        symbol = '$symbol' 
      WHERE id = '$assignmentid' 
       AND teacherid = '$uid'"; 
    echo $query; 
    mysql_query($query); 
} 

Я пробовал много, но не могу заставить его обновить строку. Я знаю, что функция выполняется, потому что echo $query; выводит запрос.

Конкретной строки после переменных разобраны является:

UPDATE assignments 
    SET expdate = '1325401200', 
     dispdate = '1293865200', 
     duedate = '1325401200', 
     name = 'Test 7', 
     cat1 = '138', 
     cat2 = '0', 
     cat3 = '0', 
     schoolid = '1', 
     classid = '33', 
     public = '1', 
     tags = 'New Vista High School,,80302,Patrick,Turmala,Test 7,,,138,No sub-categories,No sub-categories,test7,2012,testNew Vista High School,,80302,Patrick,Turmala,Test 7,,,138,0,0,teste,2012,testes', 
     description = 'Test 7', 
     symbol='teste' 
WHERE id = '21' 
    AND teacherid = '538' 

Является ли это ошибка синтаксиса? Что происходит?

Спасибо всем.

+0

Вы уверены, что в строке есть идентификатор 21 и учитель 538? –

+1

echo 'mysql_error()' после 'mysql_query()'. Если это синтаксическая ошибка, она станет простой. –

+0

Кроме того, являются ли ваши три столбца даты MySQL типами DATETIME, или они являются INT, которые принимают временные метки UNIX из PHP? –

ответ

0

пытаются использовать

UPDATE assignments set `fieldname`= values where ... 

и эхо mysql_error увидеть исключение.

0

В основном потому, что есть Mysql Зарезервированные слова в запросе, как общественного, Вы должны использовать ` процитировать что.

Редактировать: public не mysql зарезервированное слово, попробуйте mysql_error(), чтобы увидеть сообщение об ошибке.

+0

' public' не является зарезервированным ключевым словом: http://dev.mysql.com/doc/refman/5.0/en /reserved-words.html –

0

Можете ли вы сообщить мне об ошибке/исключении, что вы получаете.

Я думал о том, что существует проблема с длиной столбца. Длина тегов столбцов слишком короткая, чтобы удерживать заданное значение.

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