2012-02-28 97 views
0

在同一页面学习PHP表单验证的新手段。请告知为什么我的数据可能不会发布到数据库。填写完表单后,它会重定向到谢谢页面而不发送数据。谢谢!PHP/MySQL表单不能将数据发布到数据库

http://pastebin.com/3T1W9Krx

编辑:现在,我知道我的问题是,我已经更新了引擎收录的文件,以显示工作代码,验证在同一个页面,并查看是否有重复的电子邮件地址数据库。

我能够使用下面的Rick Kuipers建议来找到这个错误。我试图在VALUES下为主键添加一列,但是我只需要INSERT键的值,而不是ID或时间戳,因为ID设置为自动递增。

$sql = "INSERT INTO table (last_name, first_name, age) 

VALUES (". 
         PrepSQL($last_name) . ", " . 
         PrepSQL($first_name) . ", " . 
         PrepSQL($age) . ")"; 

     mysql_query($sql); 
     header("Location: volthankyou.php"); 
     exit(); 
    } 
} 
+0

这是问答网站,而不是修复我的代码网站 – 2012-02-28 19:54:30

+0

我真的很努力,只需要一些建议。不过谢谢。 – Commandrea 2012-02-28 19:56:22

+0

欢迎您*要求*建议*,而不只是抛出代码来修复 – 2012-02-28 19:58:15

回答

2

这可能是因为您的查询出现问题。

尝试执行以下操作:

echo mysql_error($db); 
//header("Location: volthankyou.php"); 

,如果有任何这应该显示错误。

+0

啊!明白了 - 列数不等于...问题是第一列是主键,但是我不确定如何使用PrepSQL前缀和$ value在VALUES下设置它...尝试几件事- 谢谢! – Commandrea 2012-02-28 20:01:46

+1

如果第一列“id”设置为auto_increment,您可以将其忽略,它将自动填充。 – 2012-02-28 20:06:27

+0

谢谢Rick-您帮我找到了解决方案。 – Commandrea 2012-02-28 21:02:17

0

检查mysql_query对于您的插入是真是假。否则,它会一直尝试,然后重定向到谢谢。正如spencercw指出的那样,mysql_select_db也可能失败。始终检查这些方法的结果。

P.S .:总是检查服务器日志

+0

'mysql_select_db'也可能失败。 – spencercw 2012-02-28 19:56:43