2011-11-18 55 views
0

我已经使用PHP将条目插入数据库大约一年了,然后突然间他们今天突然停止插入。我无法弄清楚为什么。什么都没有改变(据我知道反正!)谁能告诉我什么是错的,请:PHP数据库错误

include('db_functions.php'); 
connect_to_db(); 
$query="insert into mixtable (date, djname, title, description, music, tracklist, deleted) values ('".$date."','".$djname."','".$title."','".$description."','".$music."','".$tracklist."', 0)"; 
$result=mysql_query($query); 

if(mysql_affected_rows()==1){ 
Header("Location:admin.php?op=admin&mix=added&news=null"); 
} 
else{ 
    die("there was a problem"); 
} 

的db_functions做工精细,我知道这是因为在另一页我打电话使用db_functions和它的数据库信息工作正常。所有变量都以表格条目的形式存在。就像我说的那样,现在这一直工作正常。

我得到的问题是“有问题”错误。我试过显示所有错误,但是也没有显示任何内容。我无法弄清楚它是什么。有任何想法吗?

在此先感谢。

+6

你没有做任何错误检查。你如何期望被告知哪些问题?请参阅'mysql_error()'和完整的参考:[参考:什么是使用mysql扩展的完美代码示例?](http://stackoverflow.com/q/6198104) –

+0

感谢Pekka。我正在做一个像noob一样的php错误检查。在做了sql错误检查之后,我发现问题是因为信息中有几个撇号。尽管如此,我在信息中使用了撇号,所以为什么现在的错误呢?任何想法? – nutman

+0

原因可能是这样的:http://php.net/manual/en/security.database.sql-injection.php –

回答

0

尝试将“日期”放在单引号中,因为date是当前版本的MySQL中的关键字。由于数据库版本升级(可能从4到5),可能发生错误。

0

有几件事情你需要看到。

- >参见下面的查询

"insert into mixtable (date, djname, title, description, music, tracklist, deleted) values ('{$date}','{$djname}','{$title}','{$description}','{$music}','{$tracklist}', 0)"; 

当您使用双引号,你不需要使用“”附加字符串。

- >从上面的说明可以清楚地看到,你的查询没有执行,试着回显查询并在sql编辑器中检查它,你应该能够快速调试它。

+0

虽然你是完全正确的,但我发现连接字符串更容易阅读(我也倾向于在查询字符串本身中清理我的值,即VALUES(“.dbs($ date)。”...)。 –

0

如果您的表具有自动增量ID,您是否达到了该字段中允许的最大数量?