2

刚刚创建了一个将文件名保存到 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 不起作用=/

有任何想法吗 ?

4

2 回答 2

4

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

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

对于多个列,$file_name如果您不打算枚举表中的每一列,则需要命名要将字符串保存在哪一列。然后你的自动增量应该可以正常工作。

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

于 2012-05-12T21:04:18.853 回答
2

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

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

改变这个:

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

对于这样的事情

mysql_query("INSERT INTO `files` (`YOURFIELD`) VALUES ('$file_name')") ; 
于 2012-05-12T21:06:36.387 回答