Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL更新问题_Mysql_Sql Update - Fatal编程技术网

MySQL更新问题

MySQL更新问题,mysql,sql-update,Mysql,Sql Update,我有一个update语句,由于某些原因,它似乎不起作用 else if (isset($_POST['save'])) { $query = "UPDATE assignments SET expdate = '$expdate', dispdate = '$dispdate', duedate = '$duedate', name = '$

我有一个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'
这是语法错误吗?发生了什么事

感谢所有人。

尝试使用

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

和echo mysql_error查看异常。

主要是因为在查询中有mysql保留字,比如public, 你应该用`来引述这句话


编辑:public不是mysql保留字,请尝试mysql\u error查看错误消息。

您能告诉我您得到的错误/异常信息吗


我认为这列的长度有问题。列标记的长度太短,无法容纳给定的值。

您确定行的id为21,teacherid为538吗?在mysql\u查询后返回mysql\u错误。如果是语法错误,它将变得简单。另外,您的三个日期列是MySQL DATETIME类型,还是INT接受来自PHP的UNIX时间戳?我假设assignments tablepublic中没有id='21'和teacherid='538'的记录不是保留关键字: