刚创建了一个将文件名保存到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不会工作= /
有什么想法吗?
答案 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')") ;