2011-06-01 82 views
1

有人请看下面的代码,它是处理通过表单提交的数据并将此数据插入MySQL数据库。将数组数据插入数据库的问题

<? $con = mysql_connect("localhost","username","password"); 

if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("database_name", $con); 

$name=mysql_real_escape_string(serialize($_POST['fullname15'])); 
$bdate=mysql_real_escape_string(serialize($_POST['birthdate19'])); 

$sql="INSERT INTO bookings (full_name, dob, email) VALUES ('$_POST[name]','$_POST[bdate]','$_POST[email]')"; 

if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
    } 
echo "Form Sent to Database"; 

mysql_close($con) 
?>` 

我用叫JotForm一个表单生成器来建立自己的形式和当表单提交它的数据发送到我的process.php上面的脚本。问题是我无法将一些数据存入我的数据库。目前唯一成功的领域是电子邮件。

的数据被提交给我的成功脚本,因为“的var_dump”显示我:

[fullname15] => Array ([0] => Joe [1] => Bloggs) 
[birthdate19] => Array ([0] => 14 [1] => November [2] => 1921) 
[email16] => [email protected] 

我是新来编程,并尝试过了几个小时,以获得全名和出生日期插入到我的数据库我几乎放弃的领域。任何帮助将不胜感激。

回答

3

您没有向$ sql语句发送任何内容。例如,$ _POST ['name']是空的。为了在将来进行调试,打印出$ sql进行检查。

$name=mysql_real_escape_string(serialize($_POST['fullname15'])); 
$bdate=mysql_real_escape_string(serialize($_POST['birthdate19'])); 
$email=mysql_real_escape_string(serialize($_POST['email16'])); 

$sql="INSERT INTO bookings (full_name, dob, email) VALUES ('$name','$bdate','$email')"; 
+0

该死的,你快... :) – 2011-06-01 16:40:41

+0

您好,感谢您的快速反应@tofutim,我刚刚经修订,但时,我认为仍然不填充这些领域的数据库,这使我认为数据库中的字段类型不正确或不对。我会改变其中的一些字段类型,看看是否能解决这个问题。但是谢谢你指出我做错了什么。 :-) – 2011-06-01 16:56:03