自动增量不会更新

时间:2012-05-12 20:58:35

标签: php mysql sql

刚创建了一个将文件名保存到SQL数据库中的表单。

当我将ID列(自动增量)添加到SQLDatabase中时,表单会停止保存我的文件名,但是一旦我删除了ID行,它就会开始保存。

不知道这个问题是什么。

这是我的一些代码

 <?php  



     if(isset($_FILES['file_name'])) {
     $file_name = mysql_real_escape_string($_FILES['file_name']['name']); 
      //Writes the information to the database 

     mysql_query("INSERT INTO `files` VALUES ('$file_name')") ; 
      }

     //Retrieves data from MySQL 
     $data = mysql_query("SELECT * FROM files") or die(mysql_error()); 
     //Puts it into an array 

     ?> 

我的数据库有两列file_id和file_name 但正如我刚刚写的那样,file_id不会工作= /

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

我认为您需要将SQL查询更改为:

mysql_query("INSERT INTO `files` (`file_name`) VALUES ('$file_name')") ; 

如果您不打算枚举表中的每一列,则需要指定要保存$file_name字符串的列。那么你的自动增量应该可以正常工作。

实际上,问题不在于自动增量,而在于您的SQL语法。您应该通过保存mysql_query的返回值并检查它是否返回false来检查您的查询是否存在错误。如果是,请调用mysql_error以确定错误消息。

答案 1 :(得分:2)

由于ID是auto_inc,因此您无需在任何地方将其包含在脚本中。

我认为问题是因为您没有在查询中指定要将值放入哪些字段。

改变这个:

mysql_query("INSERT INTO `files` VALUES ('$file_name')") ; 

这样的事情

mysql_query("INSERT INTO `files` (`YOURFIELD`) VALUES ('$file_name')") ;